1e41f4b71Sopenharmony_ci# image
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci>  **说明:**
4e41f4b71Sopenharmony_ci>  从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci图片组件,用来渲染展示图片。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## 子组件
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci不支持。
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci## 属性
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci除支持[通用属性](js-components-common-attributes.md)外,还支持如下属性:
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci| 名称   | 类型     | 默认值  | 必填   | 描述                                       |
19e41f4b71Sopenharmony_ci| ---- | ------ | ---- | ---- | ---------------------------------------- |
20e41f4b71Sopenharmony_ci| src  | string | -    | 否    | 图片的路径,支持本地路径,图片格式包括png、jpg、bmp、svg和gif。<br/>- 支持Base64字符串<sup>6+</sup>。格式为data:image/[png&nbsp;\|&nbsp;jpeg&nbsp;\|&nbsp;bmp&nbsp;\|&nbsp;webp];base64,&nbsp;[base64&nbsp;data],&nbsp;其中[base64&nbsp;data]为Base64字符串数据。<br/>- 支持dataability://的路径前缀,用于访问通过data&nbsp;ability提供的图片路径<sup>6+</sup>。 |
21e41f4b71Sopenharmony_ci| alt  | string | -    | 否    | 占位图,当指定图片在加载中时显示。                        |
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci## 样式
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci除支持[通用样式](js-components-common-styles.md)外,还支持如下属性:
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci| 名称                           | 类型      | 默认值          | 必填   | 描述                                       |
29e41f4b71Sopenharmony_ci| ---------------------------- | ------- | ------------ | ---- | ---------------------------------------- |
30e41f4b71Sopenharmony_ci| object-fit                   | string  | cover        | 否    | 设置图片的缩放类型,不支持svg格式。可选值类型说明请见object-fit类型说明。 |
31e41f4b71Sopenharmony_ci| match-text-direction         | boolean | false        | 否    | 图片是否跟随文字方向,不支持svg格式。                     |
32e41f4b71Sopenharmony_ci| fit-original-size            | boolean | false        | 否    | image组件在未设置宽高的情况下是否适应图源尺寸,该属性为true时object-fit属性不生效,svg类型图源不支持该属性。 |
33e41f4b71Sopenharmony_ci| object-position<sup>7+</sup> | string  | 0px&nbsp;0px | 否    | 设置图片在组件内展示的位置。<br/>设置类型有两种:<br/>1.&nbsp;像素,单位px,示例&nbsp;15px&nbsp;15px&nbsp;代表X轴或者Y轴移动的位置<br/>2.&nbsp;字符,可选值:<br/>-&nbsp;left&nbsp;图片显示在组件左侧;<br/>-&nbsp;top&nbsp;图片显示在组件顶部位置;<br/>-&nbsp;right&nbsp;图片显示在组件右侧位置;<br/>-&nbsp;bottom 图片显示在组件底部位置。 |
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**表1** object-fit 类型说明
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci| 类型         | 描述                                   |
38e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ |
39e41f4b71Sopenharmony_ci| cover      | 保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界,居中显示。 |
40e41f4b71Sopenharmony_ci| contain    | 保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内,居中显示。   |
41e41f4b71Sopenharmony_ci| fill       | 不保持宽高比进行放大缩小,使得图片填充满显示边界。            |
42e41f4b71Sopenharmony_ci| none       | 保持原有尺寸进行居中显示。                        |
43e41f4b71Sopenharmony_ci| scale-down | 保持宽高比居中显示,图片缩小或者保持不变。                |
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci>  **说明:**
46e41f4b71Sopenharmony_ci>  使用svg图片资源时:
47e41f4b71Sopenharmony_ci>
48e41f4b71Sopenharmony_ci>  - 建议设置image组件的长宽,否则在父组件的长或宽为无穷大的场景下,svg资源将不会绘制;
49e41f4b71Sopenharmony_ci>
50e41f4b71Sopenharmony_ci>  - 如果svg描述中未指定相应的长宽,则svg将会填满image组件区域;
51e41f4b71Sopenharmony_ci>
52e41f4b71Sopenharmony_ci>  - 如果svg描述中指定了相应的长宽,和image组件本身的长宽效果如下:
53e41f4b71Sopenharmony_ci>
54e41f4b71Sopenharmony_ci>  1. 如果image组件本身的长宽小于svg中的长宽,svg会被裁切,仅显示左上角部分;
55e41f4b71Sopenharmony_ci>
56e41f4b71Sopenharmony_ci>  2. 如果image组件本身的长宽大于svg中的长宽,svg会被放置在image组件的左上角,image组件其他部分显示空白。
57e41f4b71Sopenharmony_ci>
58e41f4b71Sopenharmony_ci>  - 图片设置svg图源时,支持的标签范围有限,目前支持的svg标签包括svg、rect、circle、ellipse、path、line、polyline、polygon、animate、animateMotion、animateTransform。
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci## 事件
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci除支持[通用事件](js-components-common-events.md)外,还支持如下事件:
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci| 名称       | 参数                                       | 描述                        |
66e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ------------------------- |
67e41f4b71Sopenharmony_ci| complete | {<br>&nbsp;width:width,<br>&nbsp;height:height<br>&nbsp;} | 图片成功加载时触发该回调,返回成功加载的图源尺寸。 |
68e41f4b71Sopenharmony_ci| error    | {<br>&nbsp;width:width,<br>&nbsp;height:height<br>&nbsp;} | 图片加载出现异常时触发该回调,异常时长宽为零。   |
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci## 方法
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci支持[通用方法](js-components-common-methods.md)。
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci## 示例
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci```html
78e41f4b71Sopenharmony_ci<!-- xxx.hml -->
79e41f4b71Sopenharmony_ci<div class="container">
80e41f4b71Sopenharmony_ci  <image src="common/images/example.png" style="width: 300px; height: 300px; object-fit:{{fit}}; object-position: center center; border: 1px solid red;">
81e41f4b71Sopenharmony_ci  </image>
82e41f4b71Sopenharmony_ci  <select class="selects" onchange="change_fit"><option for="{{fits}}" value="{{$item}}">{{$item}}</option></select>
83e41f4b71Sopenharmony_ci</div>
84e41f4b71Sopenharmony_ci```
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci```css
87e41f4b71Sopenharmony_ci/* xxx.css */
88e41f4b71Sopenharmony_ci.container {
89e41f4b71Sopenharmony_ci  justify-content: center;
90e41f4b71Sopenharmony_ci  align-items: center;
91e41f4b71Sopenharmony_ci  flex-direction: column;
92e41f4b71Sopenharmony_ci}
93e41f4b71Sopenharmony_ci.selects{
94e41f4b71Sopenharmony_ci  margin-top: 20px;
95e41f4b71Sopenharmony_ci  width:300px;
96e41f4b71Sopenharmony_ci  border:1px solid #808080;
97e41f4b71Sopenharmony_ci  border-radius: 10px;
98e41f4b71Sopenharmony_ci}
99e41f4b71Sopenharmony_ci```
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci```js
102e41f4b71Sopenharmony_ci// xxx.js
103e41f4b71Sopenharmony_ciexport default {
104e41f4b71Sopenharmony_ci  data: {
105e41f4b71Sopenharmony_ci    fit:"cover",
106e41f4b71Sopenharmony_ci    fits: ["cover", "contain", "fill", "none", "scale-down"],
107e41f4b71Sopenharmony_ci  },
108e41f4b71Sopenharmony_ci  change_fit(e) {
109e41f4b71Sopenharmony_ci    this.fit = e.newValue;
110e41f4b71Sopenharmony_ci  },
111e41f4b71Sopenharmony_ci}
112e41f4b71Sopenharmony_ci```
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci![zh-cn_image_0000001127284936](figures/zh-cn_image_0000001127284936.gif)
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci
117