diff --git a/en/application-dev/reference/apis/js-apis-image.md b/en/application-dev/reference/apis/js-apis-image.md new file mode 100644 index 0000000000000000000000000000000000000000..8a112fc22b0502bbf128227c82a4f5122bec99e1 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-image.md @@ -0,0 +1,1157 @@ +Image Processing +========== + +> **NOTE** +> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. + + Modules to Import +--------- + +``` +import image from '@ohos.multimedia.image'; +``` + +## image.createPixelMap8+ +createPixelMap(colors: ArrayBuffer, opts: InitializetionOptions): Promise\ + +Creates a **PixelMap** object. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------ | ------------------------------------------------ | ---- | ------------------------------------------------------------ | +| colors | ArrayBuffer | Yes | Color array. | +| opts | [InitializetionOptions](#InitializationOptions8) | Yes | Pixel properties, including the alpha type, size, scale mode, pixel format, and editable.| + +**Return value** + +| Type | Description | +| -------------------------------- | -------------- | +| Promise\<[PixelMap](#pixelmap7)> | Promise used to return the **PixelMap** object created.| + +**Example** + +```js +image.createPixelMap(Color, opts) + .then((pixelmap) => { + expect(pixelmap !== null).assertTrue() + done() + }) +``` + +## image.createPixelMap8+ + +createPixelMap(colors: ArrayBuffer, opts: InitializetionOptions) callback: AsyncCallback\): void + +Creates a **PixelMap** object. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------ | ---- | -------------------- | +| colors | ArrayBuffer | Yes | Color array. | +| opts | [InitializetionOptions](#InitializationOptions8) | Yes | Pixel properties. | +| callback | AsyncCallback\<[PixelMap](#pixelmap7)> | Yes | Callback used to return the **PixelMap** object obtained.| + +**Example** + +```js +image.createPixelMap(Color, opts, (pixelmap) => { + expect(pixelmap !== null).assertTrue() + done() + }) +``` + +## PixelMap7+ + +Provides APIs to read or write image pixel map data and obtain image pixel map information. Before calling any API in **PixelMap**, you must use **createPixelMap** to create a **PixelMap** object. + + ### Attributes + +| Name | Type | Readable| Writable| Description | +| ----------------------- | ------- | ---- | ---- | ------------------------------------------------------------ | +| isEditable7+ | boolean | Yes | No | Whether the image pixel map is editable.
**System capability**: SystemCapability.Multimedia.Image| + +### readPixelsToBuffer7+ + +readPixelsToBuffer(dst: ArrayBuffer): Promise\ + +Reads image pixel map data and writes the data to an **ArrayBuffer**. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ----------- | ---- | ------------------------------------------------------------ | +| dst | ArrayBuffer | Yes | Buffer to which the image pixel map data will be written.| + +**Return value** + +| Type | Description | +| :------------- | :---------------------------------------------- | +| Promise\ | Promise used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelmap.readPixelsToBuffer(readBuffer).then(() => { + var bufferArr = new Uint8Array(readBuffer) + var res = true + for (var i = 0; i < bufferArr.length; i++) { + if (res) { + if (bufferArr[i] !== 0) { + res = false + console.info('TC_020 Success') + expect(true).assertTrue() + done() + break + } + } + } + if (res) { + console.info('TC_020 buffer is all empty') + expect(false).assertTrue() + done() + } + }) +``` + +### readPixelsToBuffer7+ + +readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\): void + +Reads image pixel map data and writes the data to an **ArrayBuffer**. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------------------------------------------ | +| dst | ArrayBuffer | Yes | Buffer to which the image pixel map data will be written.| +| callback | AsyncCallback\ | Yes | Callback used to return the operation result. If the operation fails, an error message is returned. | + +**Example** + +```js +pixelmap.readPixelsToBuffer(readBuffer, () => { + var bufferArr = new Uint8Array(readBuffer) + var res = true + for (var i = 0; i < bufferArr.length; i++) { + if (res) { + if (bufferArr[i] !== 0) { + res = false + console.info('TC_020-1 Success') + expect(true).assertTrue() + done() + break + } + } + } + if (res) { + console.info('TC_020-1 buffer is all empty') + expect(false).assertTrue() + done() + } + }) +``` + +### readPixels7+ + +readPixels(area: PositionArea): Promise\ + +Reads pixel map data in an area. This API uses a promise to return the data read. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------------------------ | ---- | ------------------------ | +| area | [PositionArea](#positionarea7) | Yes | Area from which the image pixel map data will be read.| + +**Return value** + +| Type | Description | +| :------------- | :-------------------------------------------------- | +| Promise\ | Promise used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelmap.readPixels(area).then((data) => { + if(data !== null){ + var bufferArr = new Uint8Array(area.pixels); + var res = true; + for (var i = 0; i < bufferArr.length; i++) { + console.info('TC_021 buffer ' + bufferArr[i]); + if(res) { + if (bufferArr[i] == 0) { + res = false; + console.info('TC_021 Success'); + expect(true).assertTrue(); + done(); + break; + } + } + } + if (res) { + console.info('TC_021 buffer is all empty'); + expect(false).assertTrue() + done(); + } + } + }) +``` + +### readPixels7+ + +readPixels(area: PositionArea, callback: AsyncCallback\): void + +Reads image pixel map data in an area. This API uses a callback to return the data read. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------ | ---- | ------------------------------ | +| area | [PositionArea](#positionarea7) | Yes | Area from which the image pixel map data will be read. | +| callback | AsyncCallback\ | Yes | Callback used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelmap.readPixels(area,(data) => { + if(data !== null) { + var bufferArr = new Uint8Array(area.pixels); + var res = true; + for (var i = 0; i < bufferArr.length; i++) { + console.info('TC_021-1 buffer ' + bufferArr[i]); + if(res) { + if(bufferArr[i] == 0) { + res = false; + console.info('TC_021-1 Success'); + expect(true).assertTrue(); + done(); + break; + } + } + } +``` + +### writePixels7+ + +writePixels(area: PositionArea): Promise\ + +Writes image pixel map data to an area. This API uses a promise to return the operation result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------------------------ | ---- | -------------------- | +| area | [PositionArea](#PositionArea7) | Yes | Area to which the pixel map data will be written.| + +**Return value** + +| Type | Description | +| :------------- | :-------------------------------------------------- | +| Promise\ | Promise used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelMap.writePixels(area).then(() => { + console.log("Succeeded in writing pixels."); +}).catch((err) => { + console.error("Failed to write pixels."); +}); +``` + +### writePixels7+ + +writePixels(area: PositionArea, callback: AsyncCallback\): void + +Writes image pixel map data to an area. This API uses a callback to return the operation result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| --------- | ------------------------------ | ---- | ------------------------------ | +| area | [PositionArea](#PositionArea7) | Yes | Area to which the pixel map data will be written. | +| callback: | AsyncCallback\ | Yes | Callback used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelmap.writePixels(area, () => { + const readArea = { + pixels: new ArrayBuffer(20), + offset: 0, + stride: 8, + region: { size: { height: 1, width: 2 }, x: 0, y: 0 }, + } + }) +``` + +### writeBufferToPixels7+ + +writeBufferToPixels(src: ArrayBuffer): Promise\ + +Reads image data in an **ArrayBuffer** and writes the data to a **PixelMap** object. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ----------- | ---- | -------------- | +| src | ArrayBuffer | Yes | Buffer from which the image data will be read.| + +**Return value** + +| Type | Description | +| -------------- | ----------------------------------------------- | +| Promise\ | Promise used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelMap.writeBufferToPixels(colorBuffer).then(() => { + console.log("Succeeded in writing data from a buffer to a PixelMap."); +}).catch((err) => { + console.error("Failed to write data from a buffer to a PixelMap."); +}); +``` + +### writeBufferToPixels7+ + +writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\): void + +Reads image data in an **ArrayBuffer** and writes the data to a **PixelMap** object. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------------ | +| src | ArrayBuffer | Yes | Buffer from which the image data will be read. | +| callback | AsyncCallback\ | Yes | Callback used to return the operation result. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelMap.writeBufferToPixels(colorBuffer, function(err) { + if (err) { + console.error("Failed to write data from a buffer to a PixelMap."); + return; + } + console.log("Succeeded in writing data from a buffer to a PixelMap."); +}); +``` + +### getImageInfo7+ + +getImageInfo(): Promise\ + +Obtains pixel map information about this image. This API uses a promise to return the information. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| --------------------------------- | ----------------------------------------------------------- | +| Promise\<[ImageInfo](#imageinfo)> | Promise used to return the pixel map information. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelMap.getImageInfo().then(function(info) { + console.log("Succeeded in obtaining the image pixel map information."); +}).catch((err) => { + console.error("Failed to obtain the image pixel map information."); +}); +``` + +### getImageInfo7+ + +getImageInfo(callback: AsyncCallback\): void + +Obtains pixel map information about this image. This API uses a callback to return the information. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback\<[ImageInfo](#imageinfo)> | Yes | Callback used to return the pixel map information. If the operation fails, an error message is returned.| + +**Example** + +```js +pixelmap.getImageInfo((imageInfo) => { + if (imageInfo !== null) { + console.info('TC_024-1 imageInfo is ready') + expect(imageInfo.size.height == 4).assertTrue() + expect(imageInfo.size.width == 6).assertTrue() + expect(imageInfo.pixelFormat == 1).assertTrue() + done() + } else { + console.info('TC_024-1 imageInfo is empty') + expect(false).assertTrue() + done() + } + }) +``` + +### getBytesNumberPerRow7+ + +getBytesNumberPerRow(): number + +Obtains the number of bytes in each line of the image pixel map. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| ------ | -------------------- | +| number | Number of bytes in each line.| + +**Example** + +```js +pixelmap.getBytesNumberPerRow().then((num) => { + console.info('TC_025 num is ' + num) + expect(num == expectNum).assertTrue() + done() + }) +``` + +### getPixelBytesNumber7+ + +getPixelBytesNumber(): number + +Obtains the total number of bytes of the image pixel map. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| ------ | -------------------- | +| number | Total number of bytes.| + +**Example** + +```js +pixelmap.getPixelBytesNumber().then((num) => { + console.info('TC_026 num is ' + num) + expect(num == expectNum).assertTrue() + done() + }) +``` + +### release7+ + +release():Promise\ + +Releases this **PixelMap** object. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| -------------- | ------------------ | +| Promise\ | Promise used to return the operation result.| + +**Example** + +```js +pixelmap.release() + expect(true).assertTrue() + done() +``` + +### release7+ + +release(callback: AsyncCallback\): void + +Releases this **PixelMap** object. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------ | +| callback | AsyncCallback\ | Yes | Callback used to return the operation result.| + +**Example** + +```js +pixelmap.release(()=>{ + expect(true).assertTrue(); + console.log('TC_027-1 success'); + done(); + }) +``` + +## image.createImageSource + +createImageSource(uri: string): ImageSource + +Creates an **ImageSource** instance based on the URI. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------------------- | +| uri | string | Yes | Image source URI. Currently, only the local absolute path is supported.| + +**Return value** + +| Type | Description | +| --------------------------- | --------------------------------------- | +| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns **null** otherwise.| + +**Example** + +```js +const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg') +``` + +## image.createImageSource7+ + +createImageSource(fd: number): ImageSource + +Creates an **ImageSource** instance based on the file descriptor. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | -------------- | +| fd | number | Yes | File descriptor.| + +**Return value** + +| Type | Description | +| --------------------------- | --------------------------------------- | +| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns **null** otherwise.| + +**Example** + +```js +const imageSourceApi = image.createImageSource(0) +``` + +## ImageSource + +Provides APIs to obtain image information. Before calling any API in **ImageSource**, you must use **createImageSource** to create an **ImageSource** instance. + +### Attributes + +| Name | Type | Readable| Writable| Description | +| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ | +| supportedFormats | Array\ | Yes | No | Supported image formats, including png, jpeg, wbmp, bmp, gif, webp, and heif.
**System capability**: SystemCapability.Multimedia.Image| + +### getImageInfo + +getImageInfo(index: number, callback: AsyncCallback\): void + +Obtains information about an image with the specified index. This API uses a callback to return the information. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------------------------- | ---- | ---------------------------------------- | +| index | number | Yes | Index of the image. | +| callback | AsyncCallback<[ImageInfo](#imageinfo)> | Yes | Callback used to return the image information.| + +**Example** + +```js +it('TC_046', 0, async function (done) { + const imageSourceApi = image.createImageSource('/sdcard/test.jpg'); + if (imageSourceApi == null) { + console.info('TC_046 create image source failed'); + expect(false).assertTrue(); + done(); + } else { + imageSourceApi.getImageInfo(0,(error, imageInfo) => { + console.info('TC_046 imageInfo'); + expect(imageInfo !== null).assertTrue(); + done(); + }) + } + }) +``` + +### getImageInfo + +getImageInfo(callback: AsyncCallback\): void + +Obtains information about this image. This API uses a callback to return the information. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------------------------- | ---- | ---------------------------------------- | +| callback | AsyncCallback<[ImageInfo](#imageinfo)> | Yes | Callback used to return the image information.| + +**Example** + +```js +imageSourceApi.getImageInfo(imageInfo => { + console.info('TC_045 imageInfo'); + expect(imageInfo !== null).assertTrue(); + done(); + }) +``` + +### getImageInfo + +getImageInfo(index?: number): Promise\ + +Obtains information about an image with the specified index. This API uses a promise to return the image information. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| ----- | ------ | ---- | ------------------------------------- | +| index | number | No | Index of the image. If this parameter is not set, the default value **0** is used.| + +**Return value** + +| Type | Description | +| -------------------------------- | ---------------------- | +| Promise<[ImageInfo](#imageinfo)> | Promise used to return the image information.| + +**Example** + +```js +imageSourceApi.getImageInfo(0) + .then(imageInfo => { + console.info('TC_047 imageInfo'); + expect(imageInfo !== null).assertTrue(); + done(); + }) +``` + +### getImageProperty7+ + +getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\ + +Obtains the value of a property with the specified index in this image. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + + **Parameters** + +| Name | Type | Mandatory| Description | +| ------- | ---------------------------------------------------- | ---- | ------------------------------------ | +| key | string | Yes | Name of the property. | +| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | No | Image properties, including the image index and default property value.| + +**Return value** + +| Type | Description | +| ---------------- | ------------------------------------------------------------ | +| Promise\ | Promise used to return the property value. If the operation fails, the default value is returned.| + +**Example** + +```js +const w = imageSourceApi.getImageProperty("ImageWidth") +``` + +### getImageProperty7+ + +getImageProperty(key:string, callback: AsyncCallback\): void + +Obtains the value of a property with the specified index in this image. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + + **Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ---------------------- | ---- | ------------------------------------------------------------ | +| key | string | Yes | Name of the property. | +| callback | AsyncCallback\ | Yes | Callback used to return the property value. If the operation fails, the default value is returned.| + +**Example** + +```js +const w = imageSourceApi.getImageProperty("ImageWidth",w=>{}) +``` + +### getImageProperty7+ + +getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\): void + +Obtains the value of a property in this image. This API uses a callback to return the property value in a string. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | +| key | string | Yes | Name of the property. | +| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | Yes | Image properties, including the image index and default property value. | +| callback | AsyncCallback\ | Yes | Callback used to return the property value. If the operation fails, the default value is returned.| + +**Example** + +```js + imageSourceApi.getImageProperty("ImageWidth",PropertyOptions,(w)=>{}) +``` + +### createPixelMap7+ + +createPixelMap(index: number, options: DecodingOptions, callback: AsyncCallback\): void + +Creates a **PixelMap** object based on image decoding parameters. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------------- | ------------------------------------- | ---- | -------------------- | +| options | [DecodingOptions](#decodingoptions7) | Yes | Image decoding parameters. | +| index | number | Yes | Image index. | +| AsyncCallback | AsyncCallback<[PixelMap](#pixelmap7)> | Yes | Callback used to return the operation result.| + +**Example** + +```js +imageSourceApi.createPixelMap().then(pixelmap => { + console.info('TC_050-11 createPixelMap '); + expect(pixelmap !== null ).assertTrue(); + done(); + }) +``` + +### createPixelMap7+ + +createPixelMap(options: DecodingOptions, callback: AsyncCallback\): void + +Creates a **PixelMap** object based on image decoding parameters. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------- | ---- | -------------------- | +| options | [DecodingOptions](#decodingoptions7) | Yes | Image decoding parameters. | +| callback | AsyncCallback<[PixelMap](#pixelmap7)> | Yes | Callback used to return the operation result.| + +**Example** + +```js +let decodingOptions = { + sampleSize:1, + editable: true, + desiredSize:{ width:1, height:2}, + rotateDegrees:10, + desiredPixelFormat:1, + desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 }, + }; + imageSourceApi.createPixelMap(0,decodingOptions, pixelmap => { + console.info('TC_050-1 createPixelMap '); + expect(pixelmap !== null ).assertTrue(); + done(); + }) +``` + +### createPixelMap7+ + +createPixelMap(opts: DecodingOptions, callback: AsyncCallback\): void + +Creates a **PixelMap** object based on image decoding parameters. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------- | ---- | -------------------- | +| opts | [DecodingOptions](#decodingoptions7) | Yes | Image decoding parameters. | +| callback | AsyncCallback<[PixelMap](#pixelmap7)> | Yes | Callback used to return the operation result.| + +**Example** + +```js +let decodingOptions = { + sampleSize:1, + editable: true, + desiredSize:{ width:1, height:2}, + rotateDegrees:10, + desiredPixelFormat:1, + desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 }, + index:1 + }; + imageSourceApi.createPixelMap(decodingOptions, pixelmap => { + console.info('TC_050-1 createPixelMap '); + expect(pixelmap !== null ).assertTrue(); + done(); + }) +``` + +### release + +release(callback: AsyncCallback\): void + +Releases this **ImageSource** instance. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------------------------------- | +| callback | AsyncCallback\ | Yes | Callback invoked for instance release. If the operation fails, an error message is returned.| + +**Example** + +```js +imageSourceApi.release(() => { + console.info('TC_044-1 Success'); + expect(true).assertTrue(); + done(); + }) + } +``` + +### release + +release(): Promise\ + +Releases this **ImageSource** instance. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| -------------- | --------------------------- | +| Promise\ | Promise used to return the operation result.| + +**Example** + +```js + imageSourceApi.release(() => { + console.info('TC_044-1 Success'); + expect(true).assertTrue(); + done(); + }) +``` + +## image.createImagePacker + +createImagePacker(): ImagePacker + +Creates an **ImagePacker** instance. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| ----------- | ---------------------- | +| ImagePacker | **ImagePacker** instance created.| + +**Example** + +```js +const imagePackerApi = image.createImagePacker(); +``` + +## ImagePacker + +Provide APIs to pack images. Before calling any API in **ImagePacker**, you must use **createImagePacker** to create an **ImagePacker** instance. + +### Attributes + +| Name | Type | Readable| Writable| Description | +| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ | +| supportedFormats | Array\ | Yes | No | Supported image format, which can be jpeg.
**System capability**: SystemCapability.Multimedia.Image| + +### packing + +packing(source: ImageSource, option: PackingOption, callback: AsyncCallback>): void + +Packs an image. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------- | ---- | ---------------------------------- | +| source | [ImageSource](#imagesource) | Yes | Image to pack. | +| option | [PackingOption](#packingoption) | Yes | Option for image packing. | +| callback | AsyncCallback> | Yes | Callback used to return the packed data.| + +**Example** + +```js +let packOpts = { format:["image/jpeg"], quality:98 } + imagePackerApi.packing(imageSourceApi, packOpts, data => { + console.info('TC_062-1 finished'); + expect(data !== null).assertTrue(); + done(); + }) +``` + +### packing + +packing(source: ImageSource, option: PackingOption): Promise> + +Packs an image. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------------------------- | ---- | -------------- | +| source | [ImageSource](#imagesource) | Yes | Image to pack.| +| option | [PackingOption](#packingoption) | Yes | Option for image packing.| + +**Return value** + +| Type | Description | +| :---------------------- | :-------------------------------------------- | +| Promise> | Promise used to return the packed data.| + +**Example** + +```js +let packOpts = { format:["image/jpeg"], quality:98 } + imagePackerApi.packing(imageSourceApi, packOpts) + .then( data => { + console.info('TC_062 finished'); + expect(data !== null).assertTrue(); + done(); + }) +``` + +### release + +release(callback: AsyncCallback\): void + +Releases this **ImagePacker** instance. This API uses a callback to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------------ | +| callback | AsyncCallback\ | Yes | Callback invoked for instance release. If the operation fails, an error message is returned.| + +**Example** + +```js +imagePackerApi.release(()=>{ + console.info('TC_063-1 release'); + expect(true).assertTrue(); + done(); +``` + +### release + +release(): Promise\ + +Releases this **ImagePacker** instance. This API uses a promise to return the result. + +**System capability**: SystemCapability.Multimedia.Image + +**Return value** + +| Type | Description | +| :------------- | :------------------------------------------------------ | +| Promise\ | Promise used to return the instance release result. If the operation fails, an error message is returned.| + +**Example** + +```js +imagePackerApi.release(); + console.info('TC_063 release'); + expect(true).assertTrue(); + done(); +``` + +## PositionArea7+ + +Describes area information in an image. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Type | Readable| Writable| Description | +| ------ | ------------------ | ---- | ---- | -------------------- | +| pixels | ArrayBuffer | Yes | No | Pixels of the image. | +| offset | number | Yes | No | Offset for data reading. | +| stride | number | Yes | No | Number of bytes to read. | +| region | [Region](#region8) | Yes | No | Region to read or write.| + +## **ImageInfo** + +Describes image information. + +**System capability**: SystemCapability.Multimedia.Image + +| Name| Type | Readable| Writable| Description | +| ---- | ------------- | ---- | ---- | ---------- | +| size | [Size](#size) | Yes | Yes | Image size.| + +## Size + +Describes the size of an image. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Type | Readable| Writable| Description | +| ------ | ------ | ---- | ---- | -------------- | +| height | number | Yes | Yes | Image height.| +| width | number | Yes | Yes | Image width.| + +## PixelMapFormat7+ + +Enumerates pixel map formats. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Default Value| Description | +| --------- | ------ | ----------------- | +| UNKNOWN | 0 | Unknown format. | +| RGBA_8888 | 3 | RGBA_8888.| +| RGB_565 | 2 | RGB_565. | + +## AlphaType8+ + +Enumerates alpha types. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Default Value| Description | +| -------- | ------ | ----------------------- | +| UNKNOWN | 0 | Unknown alpha type. | +| OPAQUE | 1 | There is no alpha or the image is fully transparent.| +| PREMUL | 2 | Premultiplied alpha. | +| UNPREMUL | 3 | Unpremultiplied alpha, that is, straight alpha. | + +## ScaleMode8+ + +Enumerates scale modes. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Default Value| Description | +| --------------- | ------ | -------------------------------------------------- | +| CENTER_CROP | 1 | Scales the image so that it fills the requested bounds of the target and crops the extra.| +| FIT_TARGET_SIZE | 2 | Reduces the image size to the dimensions of the target. | + +## InitializationOptions8+ + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Type | Readable| Writable| Description | +| ----------- | ---------------------------------- | ---- | ---- | -------------- | +| alphaType | [AlphaType](#alphatype8) | Yes | Yes | Alpha type. | +| editable | boolean | Yes | Yes | Whether the image is editable. | +| pixelFormat | [PixelMapFormat](#pixelmapformat7) | Yes | Yes | Pixel map format. | +| scaleMode | [ScaleMode](#scalemode8) | Yes | Yes | Scale mode. | +| size | [Size](#size) | Yes | Yes | Image size.| + +## DecodingOptions7+ + +Describes the decoding options. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Type | Readable| Writable| Description | +| ------------------ | ---------------------------------- | ---- | ---- | ---------------- | +| sampleSize | number | Yes | Yes | Thumbnail sampling size.| +| rotateDegrees | number | Yes | Yes | Rotation angle. | +| editable | boolean | Yes | Yes | Whether the image is editable. | +| desiredSize | [Size](#size) | Yes | Yes | Expected output size. | +| desiredRegion | [Region](#region8) | Yes | Yes | Region to decode. | +| desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | Yes | Yes | Pixel map format for decoding.| +| index | numer | Yes | Yes | Index of the image to decode. | + +## Region8+ + +Describes region information. + +**System capability**: SystemCapability.Multimedia.Image + +| Name| Type | Readable| Writable| Description | +| ---- | ------------- | ---- | ---- | ---------- | +| size | [Size](#size) | Yes | Yes | Region size.| +| x | number | Yes | Yes | X coordinate of the region.| +| y | number | Yes | Yes | Y coordinate of the region.| + +## PackingOption + +Describes the option for image packing. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | -------------- | +| format | string | Yes | Yes | Format of the packed image. | +| quality | number | Yes | Yes | Quality of the packed image.| + +## GetImagePropertyOptions7+ + +Describes image properties. + +**System capability**: SystemCapability.Multimedia.Image + +| Name | Type | Readable| Writable| Description | +| ------------ | ------ | ---- | ---- | ------------ | +| index | number | Yes | Yes | Index of an image. | +| defaultValue | string | Yes | Yes | Default property value.| + +## PropertyKey7+ + +Describes the exchangeable image file format (Exif) information of an image. + +| Name | Default Value | Description | +| ----------------- | ----------------- | -------------------- | +| BITS_PER_SAMPLE | "BitsPerSample" | Number of bytes in each pixel. | +| ORIENTATION | "Orientation" | Image orientation. | +| IMAGE_LENGTH | "ImageLength" | Image length. | +| IMAGE_WIDTH | "ImageWidth" | Image width. | +| GPS_LATITUDE | "GPSLatitude" | Image latitude. | +| GPS_LONGITUDE | "GPSLongitude" | Image longitude. | +| GPS_LATITUDE_REF | "GPSLatitudeRef" | Latitude reference, for example, N or S.| +| GPS_LONGITUDE_REF | "GPSLongitudeRef" | Longitude reference, for example, W or E.|