• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interfaces (其他)
2<!--Kit: Image Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @aulight02-->
5<!--Designer: @liyang_bryan-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12
13## PositionArea<sup>7+</sup>
14
15表示图片指定区域内的数据。
16
17**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
18
19**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
20
21**系统能力:** SystemCapability.Multimedia.Image.Core
22
23| 名称   | 类型               | 只读|  可选| 说明                                                         |
24| ------ | ------------------ | ---| -----|------------------------------------------------------- |
25| pixels | ArrayBuffer        | 否 |   否  | 像素。仅支持BGRA_8888格式的图像像素数据。 |
26| offset | number             | 否 |   否  |  偏移量。单位:字节。                                                     |
27| stride | number             | 否 |   否  | 跨距,内存中每行像素所占的空间。stride >= region.size.width*4。                   |
28| region | [Region](#region8) | 否 |   否  |区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 |
29
30## ImageInfo
31
32表示图片信息。
33
34**系统能力:** SystemCapability.Multimedia.Image.Core
35
36| 名称 | 类型          | 只读 | 可选 | 说明       |
37| ---- | ------------- | --- |-----|---------- |
38| size<sup>6+</sup> | [Size](#size) | 否 |  否  |图片大小。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
39| density<sup>9+</sup> | number | 否  | 否 |像素密度,单位为ppi。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
40| stride<sup>11+</sup> | number | 否  | 否  | 跨距,内存中每行像素所占的空间。stride >= region.size.width*4 <br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
41| pixelFormat<sup>12+</sup> | [PixelMapFormat](arkts-apis-image-e.md#pixelmapformat7) | 否  |  否 | 像素格式。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
42| alphaType<sup>12+</sup> | [AlphaType](arkts-apis-image-e.md#alphatype9)  | 否  |  否  |透明度。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
43| mimeType<sup>12+</sup> | string  |  否  |   否  |图片真实格式(MIME type)。  |
44| isHdr<sup>12+</sup> | boolean  |  否  | 否  | true表示图片为高动态范围(HDR),false表示图片非高动态范围(SDR)。对于[ImageSource](arkts-apis-image-ImageSource.md),代表源图片是否为HDR;对于[PixelMap](arkts-apis-image-PixelMap.md),代表解码后的pixelmap是否为HDR。 |
45
46## Size
47
48表示图片尺寸。
49
50**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
51
52**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
53
54**系统能力:** SystemCapability.Multimedia.Image.Core
55
56| 名称   | 类型   | 只读 |  可选  |说明           |
57| ------ | ------ | -- |-----| -------------- |
58| height | number | 否  |  否  |输出图片的高,单位:像素。 |
59| width  | number | 否  |  否 | 输出图片的宽,单位:像素。 |
60
61## AuxiliaryPictureInfo<sup>13+</sup>
62
63表示辅助图图像信息。
64
65**系统能力:** SystemCapability.Multimedia.Image.Core
66
67| 名称                      | 类型                                                         | 只读 | 可选 | 说明                                                         |
68| ------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
69| auxiliaryPictureType      | [AuxiliaryPictureType](arkts-apis-image-e.md#auxiliarypicturetype13)              | 否   | 否   | 辅助图的图像类型。                                           |
70| size         | [Size](#size)                                                | 否   | 否   | 图片大小。 |
71| rowStride                 | number                                                       | 否   | 否   | 行距。                                                       |
72| pixelFormat | [PixelMapFormat](arkts-apis-image-e.md#pixelmapformat7)                           | 否   | 否   | 像素格式。 |
73| colorSpace                | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 否   | 否   | 目标色彩空间。                                               |
74
75## SourceOptions<sup>9+</sup>
76
77ImageSource的初始化选项。
78
79**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
80
81**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
82
83**系统能力:** SystemCapability.Multimedia.Image.Core
84
85| 名称              | 类型                               | 只读 | 可选 | 说明               |
86| ----------------- | ---------------------------------- | ---- | ---- | ------------------ |
87| sourceDensity     | number                             | 否   | 否   | 图片资源像素密度,单位为ppi。<br>在解码参数[DecodingOptions](#decodingoptions7)未设置desiredSize的前提下,当前参数SourceOptions.sourceDensityDecodingOptions.fitDensity非零时将对解码输出的pixelmap进行缩放。<br>缩放后宽计算公式如下(高同理):(width * fitDensity + (sourceDensity >> 1)) / sourceDensity。|
88| sourcePixelFormat | [PixelMapFormat](arkts-apis-image-e.md#pixelmapformat7) | 否   | 是   | 图片像素格式,默认值为UNKNOWN。     |
89| sourceSize        | [Size](#size)                      | 否   | 是   | 图像像素大小,默认值为空。     |
90
91## InitializationOptions<sup>8+</sup>
92
93PixelMap的初始化选项。
94
95**系统能力:** SystemCapability.Multimedia.Image.Core
96
97| 名称                     | 类型                               | 只读 |可选 |  说明           |
98| ------------------------ | ---------------------------------- | ----| -----|  -------------- |
99| alphaType<sup>9+</sup>   | [AlphaType](arkts-apis-image-e.md#alphatype9)           | 否   | 是| 透明度。默认值为IMAGE_ALPHA_TYPE_PREMUL。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。      |
100| editable                 | boolean                            | 否   | 是| true表示可编辑,false表示不可编辑。默认值为false。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。|
101| srcPixelFormat<sup>12+</sup>  | [PixelMapFormat](arkts-apis-image-e.md#pixelmapformat7) | 否 | 是 | 传入的buffer数据的像素格式。默认值为BGRA_8888。|
102| pixelFormat              | [PixelMapFormat](arkts-apis-image-e.md#pixelmapformat7) | 否 | 是| 生成的pixelMap的像素格式。默认值为RGBA_8888。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。     |
103| scaleMode<sup>9+</sup>   | [ScaleMode](arkts-apis-image-e.md#scalemode9)           | 否  | 是 | 缩略值。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。       |
104| size                     | [Size](#size)                      | 否  | 否|创建图片大小。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
105
106## DecodingOptions<sup>7+</sup>
107
108图像解码设置选项。
109
110**系统能力:** SystemCapability.Multimedia.Image.ImageSource
111
112| 名称               | 类型                               | 只读 | 可选 | 说明             |
113| ------------------ | ---------------------------------- | ---- | ---- | ---------------- |
114| sampleSize         | number                             | 否   | 是   | 缩略图采样大小,默认值为1。当前只能取1。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
115| rotate             | number                             | 否   | 是   | 旋转角度。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。       |
116| editable           | boolean                            | 否   | 是   | true表示可编辑,false表示不可编辑。默认值为false。当取值为false时,图片不可二次编辑,如writePixels操作将失败。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。  |
117| desiredSize        | [Size](#size)                      | 否   | 是   | 期望输出大小,必须为正整数,若与原尺寸比例不一致,则会进行拉伸/缩放到指定尺寸,默认为原始尺寸。<br>注意:若解码接口同时传入了desiredSize参数与desiredRegion参数,需进一步传入cropAndScaleStrategy参数指定缩放与裁剪的先后顺序,推荐设置CROP_FIRST。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。   |
118| desiredRegion      | [Region](#region8)                 | 否   | 是   | 解码图像中由Region指定的矩形区域,当原始图像很大而只需要解码图像的一部分时,可以设置该参数,有助于提升性能,默认为原始大小。<br>注意:若解码接口同时传入了desiredSize参数与desiredRegion参数,需进一步传入cropAndScaleStrategy参数指定缩放与裁剪的先后顺序,推荐设置CROP_FIRST。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。       |
119| desiredPixelFormat | [PixelMapFormat](arkts-apis-image-e.md#pixelmapformat7) | 否   | 是   | 解码的像素格式。默认值为RGBA_8888。仅支持设置:RGBA_8888、BGRA_8888和RGB_565。有透明通道图片格式不支持设置RGB_565,如PNG、GIF、ICO和WEBP。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 |
120| index              | number                             | 否   | 是   | 解码图片序号。默认值为0,表示第一张图片。当取值为N时,表示第N+1张图片。单帧图片场景中index取值只能为0,动图等多帧图片场景中index的取值范围为:0~(帧数-1)。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。   |
121| fitDensity<sup>9+</sup> | number                        | 否   | 是   | 图像像素密度,单位为ppi。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。   |
122| desiredColorSpace<sup>11+</sup> | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 否   | 是   | 目标色彩空间。默认值为UNKNOWN。 |
123| desiredDynamicRange<sup>12+</sup> | [DecodingDynamicRange](arkts-apis-image-e.md#decodingdynamicrange12) | 否   | 是   | 目标动态范围,默认值为SDR。<br>通过[CreateIncrementalSource](arkts-apis-image-f.md#imagecreateincrementalsource9)创建的imagesource不支持设置此属性,默认解码为SDR内容。<br>如果平台不支持HDR,设置无效,默认解码为SDR内容。 |
124| cropAndScaleStrategy<sup>18+</sup> | [CropAndScaleStrategy](arkts-apis-image-e.md#cropandscalestrategy18) | 否   | 是   | 解码参数如果同时设置desiredRegion与desiredSize,由此决定裁剪与缩放操作的先后策略。<br>仅支持设置:SCALE_FIRST、CROP_FIRST。 |
125
126## DecodingOptionsForPicture<sup>13+</sup>
127
128图像解码设置选项。
129
130**系统能力:** SystemCapability.Multimedia.Image.ImageSource
131
132| 名称                     | 类型                                                    | 只读 | 可选 | 说明                                                         |
133| ------------------------ | ------------------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
134| desiredAuxiliaryPictures | Array\<[AuxiliaryPictureType](arkts-apis-image-e.md#auxiliarypicturetype13)> | 否   | 否   | 设置AuxiliaryPicture类型,默认解码所有AuxiliaryPicture类型。 |
135
136## Region<sup>8+</sup>
137
138表示区域信息。
139
140**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
141
142**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
143
144**系统能力:** SystemCapability.Multimedia.Image.Core
145
146| 名称 | 类型          | 只读 | 可选| 说明         |
147| ---- | ------------- | ---- | ---- | ------------ |
148| size<sup>7+</sup> | [Size](#size) | 否   | 否   | 区域大小。   |
149| x<sup>7+</sup>    | number        | 否   | 否  | 区域左上角横坐标。单位:像素。 |
150| y<sup>7+</sup>    | number        | 否  | 否  | 区域左上角纵坐标。单位:像素。 |
151
152## PackingOption
153
154表示图片编码选项。
155
156**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
157
158| 名称    | 类型   | 只读 | 可选 | 说明                                                |
159| ------- | ------ | ---- | ---- | --------------------------------------------------- |
160| format  | string | 否   | 否   | 目标格式。</br>当前只支持"image/jpeg"、"image/webp"、"image/png"和"image/heic(或者image/heif)"<sup>12+</sup>、"image/sdr_astc_4x4"<sup>18+</sup>、"image/sdr_sut_superfast_4x4"<sup>18+</sup>(不同硬件设备支持情况不同)、"image/hdr_astc_4x4"<sup>20+</sup>。<br>**说明:** 因为jpeg不支持透明通道,若使用带透明通道的数据编码jpeg格式,透明色将变为黑色。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
161| quality | number | 否   | 否   | 1. 编码中设定输出图片质量的参数,该参数仅对JPEG图片和HEIF图片生效。取值范围:[0, 100]。0质量最低,100质量最高,质量越高生成图片所占空间越大。WebP、PNG等图片均为无损编码。<br> 2.sdr_astc_4x4编码中,可以设定输出图片质量的参数,可选参数:92、85。<br>3. sut编码中,设定输出图片质量可选参数:92。<br>4. (API 20支持)hdr_astc_4x4编码中,可以设定输出图片质量的参数,可选参数:85。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
162| bufferSize<sup>9+</sup> | number | 否   | 是   | 接收编码数据的缓冲区大小,单位为Byte。如果不设置大小,默认为25M。如果编码图片超过25M,需要指定大小。bufferSize需大于编码后图片大小。使用[packToFile](arkts-apis-image-ImagePacker.md#packtofile11)不受此参数限制。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
163| desiredDynamicRange<sup>12+</sup> | [PackingDynamicRange](arkts-apis-image-e.md#packingdynamicrange12) | 否   | 是   | 目标动态范围。默认值为SDR。 |
164| needsPackProperties<sup>12+</sup> | boolean | 否   | 是   | 是否需要编码图片属性信息,例如EXIF。true表示需要,false表示不需要。默认值为false。 |
165
166## PackingOptionsForSequence<sup>18+</sup>
167
168描述动图编码参数的选项。
169
170**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
171
172| 名称          | 类型           | 只读 | 可选 | 说明                                                         |
173| ------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
174| frameCount    | number         | 否   | 否   | GIF编码中指定的帧数。                                        |
175| delayTimeList | Array\<number> | 否   | 否   | GIF编码中设定每帧输出图像的延迟时间,取值需大于0。<br>- 单位为10毫秒。例如,取值为10时,实际单帧延迟是100毫秒。<br>- 如果长度小于frameCount,不足的部分将使用delayTimeList中的最后一个值进行填充。 |
176| disposalTypes | Array\<number> | 否   | 是   | GIF编码中设定每帧输出图像的帧过渡模式,如果长度小于frameCount,不足的部分将使用disposalTypes中的最后一个值进行填充,可取值如下:<br>- 0:不需要任何操作。<br>- 1:保持图形不变。<br>- 2:恢复背景色。<br>- 3:恢复到之前的状态。 |
177| loopCount     | number         | 否   | 是   | 表示在GIF编码中输出图片循环播放次数,取值范围为[0,65535]。<br>0表示无限循环;若无此字段,则表示不循环播放。 |
178
179## ImagePropertyOptions<sup>11+</sup>
180
181表示查询图片属性的索引。
182
183**系统能力:** SystemCapability.Multimedia.Image.ImageSource
184
185| 名称         | 类型   | 只读 | 可选 | 说明         |
186| ------------ | ------ | ---- | ---- | ------------ |
187| index        | number | 否   | 是   | 图片序号。默认值为0。   |
188| defaultValue | string | 否   | 是   | 默认属性值。默认值为空。 |
189
190## Component<sup>9+</sup>
191
192描述图像颜色分量。
193
194**系统能力:** SystemCapability.Multimedia.Image.Core
195
196| 名称          | 类型                             | 只读 | 可选 | 说明         |
197| ------------- | -------------------------------- | ---- | ---- | ------------ |
198| componentType | [ComponentType](arkts-apis-image-e.md#componenttype9) | 是   | 否   | 组件类型。   |
199| rowStride     | number                           | 是   | 否   | 行距。读取相机预览流数据时,需要按stride进行读取,使用详情请参考[相机预览花屏解决方案](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-deal-stride-solution)。       |
200| pixelStride   | number                           | 是   | 否   | 像素间距。   |
201| byteBuffer    | ArrayBuffer                      | 是   | 否   | 组件缓冲区。 |
202
203## HdrStaticMetadata<sup>12+</sup>
204
205静态元数据值,[HdrMetadataKey](arkts-apis-image-e.md#hdrmetadatakey12)中HDR_STATIC_METADATA关键字对应的值。
206
207**系统能力:** SystemCapability.Multimedia.Image.Core
208
209| 名称          | 类型       | 只读 | 可选 | 说明         |
210| ------------- | ----------| -- | -- | ------------ |
211| displayPrimariesX     | Array\<number>  | 否 | 否 | 归一化后显示设备三基色的X坐标,数组的长度为3,以0.00002为单位,范围[0.0, 1.0]。  |
212| displayPrimariesY     | Array\<number>  | 否 | 否 | 归一化后显示设备三基色的Y坐标,数组的长度为3,以0.00002为单位,范围[0.0, 1.0]。  |
213| whitePointX  | number  | 否 | 否 | 归一化后白点值的X坐标,以0.00002为单位,范围[0.0, 1.0]。   |
214| whitePointY  | number   | 否 | 否 | 归一化后白点值的Y坐标,以0.00002为单位,范围[0.0, 1.0]。   |
215| maxLuminance  | number  | 否 | 否 | 图像主监视器最大亮度。以1为单位,最大值为65535。   |
216| minLuminance  | number   | 否 | 否 | 图像主监视器最小亮度。以0.0001为单位,最大值6.55535。   |
217| maxContentLightLevel  | number  | 否 | 否 | 显示内容的最大亮度。以1为单位,最大值为65535。   |
218| maxFrameAverageLightLevel  | number  | 否 | 否 | 显示内容的最大平均亮度,以1为单位,最大值为65535。 |
219
220## GainmapChannel<sup>12+</sup>
221
222Gainmap图单个通道的数据内容,参考ISO 21496-1。
223
224**系统能力:** SystemCapability.Multimedia.Image.Core
225
226| 名称          | 类型       | 只读 | 可选 | 说明         |
227| ------------- | ----------| -- | -- | ------------ |
228| gainmapMax     | number   | 否 | 否 | 增强图像的最大值,参考ISO 21496-1。  |
229| gainmapMin     | number   | 否 | 否 | 增强图像的最小值,参考ISO 21496-1。  |
230| gamma  | number    | 否 | 否 | gamma值,参考ISO 21496-1。   |
231| baseOffset  | number     | 否 | 否 | 基础图的偏移,参考ISO 21496-1。   |
232| alternateOffset  | number    | 否 | 否 | 提取的可选择图像偏移量,参考ISO 21496-1。    |
233
234## HdrGainmapMetadata<sup>12+</sup>
235
236Gainmap使用的元数据值,[HdrMetadataKey](arkts-apis-image-e.md#hdrmetadatakey12)中HDR_GAINMAP_METADATA关键字对应的值,参考ISO 21496-1。
237
238**系统能力:** SystemCapability.Multimedia.Image.Core
239
240| 名称          | 类型       | 只读 | 可选 | 说明         |
241| ------------- | ----------| -- | -- | ------------ |
242| writerVersion     | number   | 否 | 否 | 元数据编写器使用的版本。  |
243| miniVersion     | number   | 否 | 否 | 元数据解析需要理解的最小版本。  |
244| gainmapChannelCount  | number    | 否 | 否 | Gainmap的颜色通道数,值为3时RGB通道的元数据值不同,值为1时各通道元数据值相同,参考ISO 21496-1。  |
245| useBaseColorFlag  | boolean     | 否 | 否 | 是否使用基础图的色彩空间,参考ISO 21496-1。true表示是,false表示否。   |
246| baseHeadroom  | number    | 否 | 否 |  基础图提亮比,参考ISO 21496-1。   |
247| alternateHeadroom  | number     | 否 | 否 |  提取的可选择图像提亮比,参考ISO 21496-1。  |
248| channels  | Array<[GainmapChannel](#gainmapchannel12)> | 否 | 否 | 各通道的数据,长度为3,参考ISO 21496-1。 |
249
250## GetImagePropertyOptions<sup>(deprecated)</sup>
251
252表示查询图片属性的索引。
253
254> **说明:**
255>
256> 从API version 11开始不再维护,建议使用[ImagePropertyOptions](#imagepropertyoptions11)代替。
257
258**系统能力:** SystemCapability.Multimedia.Image.ImageSource
259
260| 名称         | 类型   | 只读 | 可选 | 说明         |
261| ------------ | ------ | ---- | ---- | ------------ |
262| index        | number | 否   | 是   | 图片序号。默认值为0。   |
263| defaultValue | string | 否   | 是   | 默认属性值。默认值为空。 |
264