# Img
Enhanced img tag that provides multiple image filling modes and supports image lazy loading, loading completion, and loading failure.
## Basic Usage
Basic usage is consistent with the native image tag. You can set native attributes such as `src`, `width`, `height`, etc.
For native attributes, refer to [uni-app image official documentation](https://uniapp.dcloud.net.cn/component/image.html#image).
Note about the src attribute:
When using `relative paths`, note that `src` needs to be a relative path from the component's location to the image's location.
When using `file import`, note that WeChat Mini Program image tag paths accept binary data and base64 encoding. Using import image paths alone cannot be accessed.
```html
```
```typescript
// import { joy } from '../images/joy'
const joy = 'data:image/jpeg;base64,...' // Image file base64
```
:::tip
You can configure `transformAssetUrls` so that the `src` attribute works consistently with the native `image` component.
```typescript
// vite.config.(js|ts)
import uni from '@dcloudio/vite-plugin-uni'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
// ...
uni({
vueOptions: {
template: {
transformAssetUrls: {
tags: {
'wd-img': ['src']
}
}
}
}
})
]
})
```
After updating the configuration, restart the development server to apply the changes.
For more details, see [uni-app issue#4997](https://github.com/dcloudio/uni-app/issues/4997#issuecomment-2456851123).
:::
## Slots
Use `loading` and `error` slots to set display content during image loading and after loading failure
```vue
Loading Failed
```
## Fill Mode
You can set the image fill mode through the `mode` property. See the table below for available values.
Mode is a Mini Program native property, refer to [WeChat Mini Program image official documentation](https://developers.weixin.qq.com/miniprogram/dev/component/image.html).
```html
```
## Round Setting
You can set to display as a circle through the `round` property.
```html
```
## Preview Enabled
By setting the `enable-preview` property, you can support click preview. It uses uni.previewImage under the hood to implement the preview effect
```html
```
You can also pass in the `preview-src` property to preview another image
```html
```
## Attributes
| Parameter | Description | Type | Options | Default | Version |
|-----------|-------------|------|----------|---------|----------|
| src | Image URL | string | - | - | - |
| width | Width, default unit is px | number / string | - | - | - |
| height | Height, default unit is px | number / string | - | - | - |
| mode | Fill mode | ImageMode | 'top left' / 'top right' / 'bottom left' / 'bottom right' / 'right' / 'left' / 'center' / 'bottom' / 'top' / 'heightFix' / 'widthFix' / 'aspectFill' / 'aspectFit' / 'scaleToFill' | 'scaleToFill' | - |
| round | Whether to display as circle | boolean | - | false | - |
| radius | Border radius size, default unit is px | number / string | - | - | - |
| enable-preview | Whether to support click preview | boolean | - | false | 1.2.11 |
| show-menu-by-longpress | Enable long press image to show Mini Program code recognition menu, only supported in WeChat Mini Program | boolean | - | false | 1.3.11 |
| preview-src | Preview image URL | string | - | - | 1.8.0 |
## Events
| Event Name | Description | Parameters | Version |
|------------|-------------|------------|----------|
| click | Click event | (event: MouseEvent) => void | - |
| load | Triggered when image is loaded | `{height, width}` | - |
| error | Triggered when error occurs | `{errMsg}` | - |
## Slots
| Name | Description | Version |
|------|-------------|----------|
| loading | Display during image loading | 1.2.21 |
| error | Display after image loading failure | 1.2.21 |
## External Classes
| Class Name | Description | Version |
|------------|-------------|----------|
| custom-class | Root node style | - |
| custom-image | Image external custom style | - |