1# ImageData
2
3ImageData对象可以存储canvas渲染的像素数据。
4
5>  **说明:**
6>
7>  从 API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## 接口
10
11constructor(width: number, height: number, data?: Uint8ClampedArray, unit?: LengthMetricsUnit);
12
13创建ImageData时,宽高不超过16384px,最大面积不超过16000px*16000px,超过最大面积则无法正常绘制。当创建面积超过536870911px时,返回值的width和height均为0px,data为undefined。
14
15**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
16
17**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
18
19**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20
21**参数:**
22| 参数名 | 类型  | 必填  | 说明 |
23| ------ | ----- | ----- | ----- |
24| width | number |是| 矩形区域宽度,默认单位为vp。 |
25| height | number |是| 矩形区域高度,默认单位为vp。|
26| data | Uint8ClampedArray |否| 一维数组,保存了相应的颜色数据,数据值范围为0到255。 |
27| unit<sup>12+</sup>  | [LengthMetricsUnit](../js-apis-arkui-graphics.md#lengthmetricsunit12) | 否   |  用来配置ImageData对象的单位模式,配置后无法动态更改,配置方法同[CanvasRenderingContext2D](ts-canvasrenderingcontext2d.md#lengthmetricsunit12)。<br>默认值:DEFAULT。 |
28
29## 属性
30
31**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
32
33**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
34
35**系统能力:** SystemCapability.ArkUI.ArkUI.Full
36
37| 名称     | 类型   | 只读 | 可选 | 描述 |
38| ------ | -------- | --------- | ---------- | ------------------------------ |
39| width | number | 是 | 否 | 矩形区域实际像素宽度。<br>单位为px。 |
40| height | number | 是 | 否 | 矩形区域实际像素高度。<br>单位为px。 |
41| data | Uint8ClampedArray | 是 | 否 | 一维数组,保存了相应的颜色数据,数据值范围为0到255。 |
42
43>  **说明:**
44>
45>  可使用[px2vp](ts-pixel-units.md#像素单位转换)接口进行单位转换。
46
47**示例:**
48
49使用getImageData接口获得一个ImageData对象。
50
51  ```ts
52  // xxx.ets
53  @Entry
54  @Component
55  struct Translate {
56    private settings: RenderingContextSettings = new RenderingContextSettings(true)
57    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
58    private img:ImageBitmap = new ImageBitmap("common/images/1234.png")
59
60    build() {
61      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
62        Canvas(this.context)
63          .width('100%')
64          .height('100%')
65          .backgroundColor('#ffff00')
66          .onReady(() =>{
67            this.context.drawImage(this.img,0,0,130,130)
68            let imagedata = this.context.getImageData(50,50,130,130)
69            this.context.putImageData(imagedata,150,150)
70          })
71      }
72      .width('100%')
73      .height('100%')
74    }
75  }
76  ```
77
78  ![zh-cn_image_000000127777780](figures/zh-cn_image_000000127777780.png)
79
80