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  79 80