harmony 鸿蒙@ohos.multimedia.image (图片处理)
@ohos.multimedia.image (图片处理)
本模块提供图片处理效果,包括通过属性创建PixelMap、读取图像像素数据、读取区域内的图片数据等。
说明: 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import image from '@ohos.multimedia.image';
image.createPixelMap8+
createPixelMap(colors: ArrayBuffer, options: InitializationOptions): Promise<PixelMap>
通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过Promise返回结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
colors | ArrayBuffer | 是 | BGRA_8888格式的颜色数组。 |
options | InitializationOptions | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 |
返回值:
类型 | 说明 |
---|---|
Promise<PixelMap> | 返回Pixelmap。 当创建的pixelmap大小超过原图大小时,返回原图pixelmap大小。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
console.log('Succeeded in creating pixelmap.');
}).catch((error : BusinessError) => {
console.log('Failed to create pixelmap.');
})
image.createPixelMap8+
createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: AsyncCallback<PixelMap>): void
通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过回调函数返回结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
colors | ArrayBuffer | 是 | BGRA_8888格式的颜色数组。 |
options | InitializationOptions | 是 | 属性。 |
callback | AsyncCallback<PixelMap> | 是 | 通过回调返回PixelMap对象。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (error : BusinessError, pixelmap : image.PixelMap) => {
if(error) {
console.log('Failed to create pixelmap.');
} else {
console.log('Succeeded in creating pixelmap.');
}
})
image.createPixelMapFromParcel11+
createPixelMapFromParcel(sequence: rpc.MessageSequence): PixelMap
从MessageSequence中获取PixelMap。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sequence | rpc.MessageSequence | 是 | 保存有PixelMap信息的MessageSequence。 |
返回值:
类型 | 说明 |
---|---|
PixelMap | 成功同步返回PixelMap对象,失败抛出异常。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If transaction operation failed |
62980097 | If the ipc error |
62980115 | If the input parameter invalid |
62980105 | Get data error |
62980177 | Napi environmental abnormality |
62980178 | Pixelmap create failed |
62980179 | Unmarshalling bufferSize parcelling error |
62980180 | Fd acquisition failed |
62980246 | Read pixelmap failed |
示例:
import image from '@ohos.multimedia.image'
import rpc from '@ohos.rpc'
class MySequence implements rpc.Parcelable {
pixel_map;
constructor(pixelmap : image.PixelMap) {
this.pixel_map = pixelmap;
}
marshalling(messageSequence : rpc.MessageSequence) {
this.pixel_map.marshalling(messageSequence);
return true;
}
unmarshalling(messageSequence : rpc.MessageSequence) {
try {
this.pixel_map = image.createPixelMapFromParcel(messageSequence);
} catch(e) {
console.log('createPixelMapFromParcel error: '+ e);
}
return true;
}
}
async function Demo() {
const color : ArrayBuffer = new ArrayBuffer(96);
let bufferArr : Uint8Array = new Uint8Array(color);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = 0x80;
}
let opts : image.InitializationOptions = {
editable: true,
pixelFormat: 4,
size: { height: 4, width: 6 },
alphaType: 3
}
let pixelMap : image.PixelMap|undefined = undefined;
await image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
pixelMap = pixelmap;
})
if (pixelMap != undefined) {
// 序列化
let parcelable : MySequence = new MySequence(pixelMap);
let data : rpc.MessageSequence = rpc.MessageSequence.create();
data.writeParcelable(parcelable);
// 反序列化 rpc获取到data
let ret : MySequence = new MySequence(pixelMap);
data.readParcelable(ret);
// 获取到pixelmap
let unmarshPixelmap = ret.pixel_map;
}
}
PixelMap7+
图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过createPixelMap创建一个PixelMap实例。目前pixelmap序列化大小最大128MB,超过会送显失败。大小计算方式为(宽*高*每像素占用字节数)。
属性
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。 |
readPixelsToBuffer7+
readPixelsToBuffer(dst: ArrayBuffer): Promise<void>
读取图像像素数据,结果写入ArrayBuffer里,使用Promise形式返回。指定BGRA_8888格式创建pixelmap,读取的像素数据与原数据保持一致。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const readBuffer : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
pixelmap.readPixelsToBuffer(readBuffer).then(() => {
console.log('Succeeded in reading image pixel data.'); //符合条件则进入
}).catch((error : BusinessError) => {
console.log('Failed to read image pixel data.'); //不符合条件则进入
})
readPixelsToBuffer7+
readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback<void>): void
读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。指定BGRA_8888格式创建pixelmap,读取的像素数据与原数据保持一致。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const readBuffer : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
pixelmap.readPixelsToBuffer(readBuffer, (err : BusinessError, res : void) => {
if(err) {
console.log('Failed to read image pixel data.'); //不符合条件则进入
} else {
console.log('Succeeded in reading image pixel data.'); //符合条件则进入
}
})
readPixels7+
readPixels(area: PositionArea): Promise<void>
读取区域内的图片数据,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
area | PositionArea | 是 | 区域大小,根据区域读取。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,用于获取读取结果,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const area : image.PositionArea = {
pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
}
pixelmap.readPixels(area).then(() => {
console.log('Succeeded in reading the image data in the area.'); //符合条件则进入
}).catch((error : BusinessError) => {
console.log('Failed to read the image data in the area.'); //不符合条件则进入
})
readPixels7+
readPixels(area: PositionArea, callback: AsyncCallback<void>): void
读取区域内的图片数据,使用callback形式返回读取结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
area | PositionArea | 是 | 区域大小,根据区域读取。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (err : BusinessError, pixelmap : image.PixelMap) => {
if(pixelmap == undefined){
console.info('createPixelMap failed.');
} else {
const area : image.PositionArea = { pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }};
pixelmap.readPixels(area, (err : BusinessError) => {
if (err != undefined) {
console.info('Failed to read pixelmap from the specified area.');
} else {
console.info('Succeeded to read pixelmap from the specified area.');
}
})
}
})
writePixels7+
writePixels(area: PositionArea): Promise<void>
将PixelMap写入指定区域内,使用Promise形式返回写入结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
area | PositionArea | 是 | 区域,根据区域写入。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,用于获取写入结果,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( (pixelmap : image.PixelMap) => {
if (pixelmap == undefined) {
console.info('createPixelMap failed.');
}
const area : image.PositionArea = { pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
}
let bufferArr : Uint8Array = new Uint8Array(area.pixels);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
pixelmap.writePixels(area).then(() => {
console.info('Succeeded to write pixelmap into the specified area.');
})
}).catch((error : BusinessError) => {
console.log('error: ' + error);
})
writePixels7+
writePixels(area: PositionArea, callback: AsyncCallback<void>): void
将PixelMap写入指定区域内,使用callback形式返回写入结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
area | PositionArea | 是 | 区域,根据区域写入。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const area : image.PositionArea = { pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
}
let bufferArr : Uint8Array = new Uint8Array(area.pixels);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
pixelmap.writePixels(area, (error : BusinessError) => {
if (error != undefined) {
console.info('Failed to write pixelmap into the specified area.');
} else {
console.info('Succeeded to write pixelmap into the specified area.');
}
})
writeBufferToPixels7+
writeBufferToPixels(src: ArrayBuffer): Promise<void>
读取缓冲区中的图片数据,结果写入PixelMap中,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | ArrayBuffer | 是 | 图像像素数据。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
pixelmap.writeBufferToPixels(color).then(() => {
console.log("Succeeded in writing data from a buffer to a PixelMap.");
}).catch((error : BusinessError) => {
console.error("Failed to write data from a buffer to a PixelMap.");
})
writeBufferToPixels7+
writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback<void>): void
读取缓冲区中的图片数据,结果写入PixelMap中,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | ArrayBuffer | 是 | 图像像素数据。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
pixelmap.writeBufferToPixels(color, (err : BusinessError) => {
if (err != undefined) {
console.error("Failed to write data from a buffer to a PixelMap.");
return;
} else {
console.log("Succeeded in writing data from a buffer to a PixelMap.");
}
});
getImageInfo7+
getImageInfo(): Promise<ImageInfo>
获取图像像素信息,使用Promise形式返回获取的图像像素信息。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
Promise<ImageInfo> | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 |
示例:
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let opts : image.InitializationOptions = { editable: true, pixelFormat: 2, size: { height: 6, width: 8 } }
image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
if (pixelmap == undefined) {
console.error("Failed to obtain the image pixel map information.");
}
pixelmap.getImageInfo().then((imageInfo : image.ImageInfo) => {
if (imageInfo == undefined) {
console.error("Failed to obtain the image pixel map information.");
}
if (imageInfo.size.height == 4 && imageInfo.size.width == 6) {
console.log("Succeeded in obtaining the image pixel map information.");
}
})
})
getImageInfo7+
getImageInfo(callback: AsyncCallback<ImageInfo>): void
获取图像像素信息,使用callback形式返回获取的图像像素信息。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<ImageInfo> | 是 | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (err : BusinessError, pixelmap : image.PixelMap) => {
if (pixelmap == undefined) {
console.error("Failed to obtain the image pixel map information.");
}
pixelmap.getImageInfo((err : BusinessError, imageInfo : image.ImageInfo) => {
if (imageInfo == undefined) {
console.error("Failed to obtain the image pixel map information.");
}
if (imageInfo.size.height == 4 && imageInfo.size.width == 6) {
console.log("Succeeded in obtaining the image pixel map information.");
}
})
})
getBytesNumberPerRow7+
getBytesNumberPerRow(): number
获取图像像素每行字节数。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
number | 图像像素的行字节数。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (err : BusinessError, pixelmap : image.PixelMap) => {
let rowCount : number = pixelmap.getBytesNumberPerRow();
})
getPixelBytesNumber7+
getPixelBytesNumber(): number
获取图像像素的总字节数。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
number | 图像像素的总字节数。 |
示例:
let pixelBytesNumber : number = pixelmap.getPixelBytesNumber();
getDensity9+
getDensity():number
获取当前图像像素的密度。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
number | 图像像素的密度。 |
示例:
let getDensity : number = pixelmap.getDensity();
opacity9+
opacity(rate: number, callback: AsyncCallback<void>): void
通过设置透明比率来让PixelMap达到对应的透明效果,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
rate | number | 是 | 透明比率的值,取值范围:0-1。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
let rate = 0.5;
pixelmap.opacity(rate, (err : BusinessError) => {
if (err) {
console.error("Failed to set opacity.");
return;
} else {
console.log("Succeeded in setting opacity.");
}
})
opacity9+
opacity(rate: number): Promise<void>
通过设置透明比率来让PixelMap达到对应的透明效果,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
rate | number | 是 | 透明比率的值,取值范围:0-1。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
示例:
async function Demo() {
await pixelmap.opacity(0.5);
}
createAlphaPixelmap9+
createAlphaPixelmap(): Promise<PixelMap>
根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
Promise<PixelMap> | Promise实例,返回pixelmap。 |
示例:
async function Demo() {
await pixelmap.createAlphaPixelmap();
}
createAlphaPixelmap9+
createAlphaPixelmap(callback: AsyncCallback<PixelMap>): void
根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<PixelMap> | 是 | 获取回调,异步返回结果。 |
示例:
import {BusinessError} from '@ohos.base'
pixelmap.createAlphaPixelmap((err : BusinessError, alphaPixelMap : image.PixelMap) => {
if (alphaPixelMap == undefined) {
console.info('Failed to obtain new pixel map.');
} else {
console.info('Succeed in obtaining new pixel map.');
}
})
scale9+
scale(x: number, y: number, callback: AsyncCallback<void>): void
根据输入的宽高对图片进行缩放,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
x | number | 是 | 宽度的缩放值,其值为输入的倍数。 |
y | number | 是 | 高度的缩放值,其值为输入的倍数。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
async function Demo() {
await pixelmap.scale(2.0, 1.0);
}
scale9+
scale(x: number, y: number): Promise<void>
根据输入的宽高对图片进行缩放,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
x | number | 是 | 宽度的缩放值,其值为输入的倍数。 |
y | number | 是 | 高度的缩放值,其值为输入的倍数。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
async function Demo() {
await pixelmap.scale(2.0, 1.0);
}
translate9+
translate(x: number, y: number, callback: AsyncCallback<void>): void
根据输入的坐标对图片进行位置变换,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
x | number | 是 | 区域横坐标。 |
y | number | 是 | 区域纵坐标。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
async function Demo() {
await pixelmap.translate(3.0, 1.0);
}
translate9+
translate(x: number, y: number): Promise<void>
根据输入的坐标对图片进行位置变换,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
x | number | 是 | 区域横坐标。 |
y | number | 是 | 区域纵坐标。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
async function Demo() {
await pixelmap.translate(3.0, 1.0);
}
rotate9+
rotate(angle: number, callback: AsyncCallback<void>): void
根据输入的角度对图片进行旋转,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
angle | number | 是 | 图片旋转的角度。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
let angle = 90.0;
pixelmap.rotate(angle, (err : BusinessError) => {
if (err != undefined) {
console.error("Failed to set rotation.");
return;
} else {
console.log("Succeeded in setting rotation.");
}
})
rotate9+
rotate(angle: number): Promise<void>
根据输入的角度对图片进行旋转,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
angle | number | 是 | 图片旋转的角度。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
async function Demo() {
await pixelmap.rotate(90.0);
}
flip9+
flip(horizontal: boolean, vertical: boolean, callback: AsyncCallback<void>): void
根据输入的条件对图片进行翻转,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
horizontal | boolean | 是 | 水平翻转。 |
vertical | boolean | 是 | 垂直翻转。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
async function Demo() {
await pixelmap.flip(false, true);
}
flip9+
flip(horizontal: boolean, vertical: boolean): Promise<void>
根据输入的条件对图片进行翻转,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
horizontal | boolean | 是 | 水平翻转。 |
vertical | boolean | 是 | 垂直翻转。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
async function Demo() {
await pixelmap.flip(false, true);
}
crop9+
crop(region: Region, callback: AsyncCallback<void>): void
根据输入的尺寸对图片进行裁剪,使用callback形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
region | Region | 是 | 裁剪的尺寸。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
async function Demo() {
await pixelmap.crop({ x: 0, y: 0, size: { height: 100, width: 100 } } as image.Region);
}
crop9+
crop(region: Region): Promise<void>
根据输入的尺寸对图片进行裁剪,使用Promise形式返回。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
region | Region | 是 | 裁剪的尺寸。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
async function Demo() {
await pixelmap.crop({ x: 0, y: 0, size: { height: 100, width: 100 } } as image.Region);
}
getColorSpace10+
getColorSpace(): colorSpaceManager.ColorSpaceManager
获取图像广色域信息。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
colorSpaceManager.ColorSpaceManager | 图像广色域信息。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980101 | If the image data abnormal |
62980103 | If the image data unsupport |
62980115 | If the image parameter invalid |
示例:
import colorSpaceManager from '@ohos.graphics.colorSpaceManager';
async function Demo() {
let csm : Object = pixelmap.getColorSpace();
}
setColorSpace10+
setColorSpace(colorSpace: colorSpaceManager.ColorSpaceManager): void
设置图像广色域信息。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
colorSpace | colorSpaceManager.ColorSpaceManager | 是 | 图像广色域信息。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980111 | If the operation invalid |
62980115 | If the image parameter invalid |
示例:
import colorSpaceManager from '@ohos.graphics.colorSpaceManager';
async function Demo() {
let colorSpaceName = colorSpaceManager.ColorSpace.SRGB;
let csm : colorSpaceManager.ColorSpaceManager = colorSpaceManager.create(colorSpaceName);
pixelmap.setColorSpace(csm);
}
marshalling10+
marshalling(sequence: rpc.MessageSequence): void
将PixelMap序列化后写入MessageSequence。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sequence | rpc.MessageSequence | 是 | 新创建的MessageSequence。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980115 | If the input parameter invalid |
62980097 | If the ipc error |
示例:
import image from '@ohos.multimedia.image'
import rpc from '@ohos.rpc'
class MySequence implements rpc.Parcelable {
pixel_map;
constructor(pixelmap : image.PixelMap) {
this.pixel_map = pixelmap;
}
marshalling(messageSequence : rpc.MessageSequence) {
this.pixel_map.marshalling(messageSequence);
console.log('marshalling');
return true;
}
unmarshalling(messageSequence : rpc.MessageSequence) {
image.createPixelMap(new ArrayBuffer(96), {size: { height:4, width: 6}}).then((pixelParcel : image.PixelMap) => {
pixelParcel.unmarshalling(messageSequence).then(async (pixelMap : image.PixelMap) => {
this.pixel_map = pixelMap;
await pixelMap.getImageInfo().then((imageInfo : image.ImageInfo) => {
console.log("unmarshalling information h:" + imageInfo.size.height + "w:" + imageInfo.size.width);
})
})
});
return true;
}
}
async function Demo() {
const color : ArrayBuffer = new ArrayBuffer(96);
let bufferArr : Uint8Array = new Uint8Array(color);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = 0x80;
}
let opts : image.InitializationOptions = {
editable: true,
pixelFormat: 4,
size: { height: 4, width: 6 },
alphaType: 3
}
let pixelMap : image.PixelMap|undefined = undefined;
await image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
pixelMap = pixelmap;
})
if (pixelMap != undefined) {
// 序列化
let parcelable : MySequence = new MySequence(pixelMap);
let data : rpc.MessageSequence = rpc.MessageSequence.create();
data.writeParcelable(parcelable);
// 反序列化 rpc获取到data
let ret : MySequence = new MySequence(pixelMap);
data.readParcelable(ret);
}
}
unmarshalling10+
unmarshalling(sequence: rpc.MessageSequence): Promise<PixelMap>
从MessageSequence中获取PixelMap, 如需使用同步方式创建PixelMap可使用:createPixelMapFromParcel。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sequence | rpc.MessageSequence | 是 | 保存有PixelMap信息的MessageSequence。 |
返回值:
类型 | 说明 |
---|---|
Promise<PixelMap> | 异步返回Promise对象。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980115 | If the input parameter invalid |
62980097 | If the ipc error |
62980096 | If fail to create async work |
示例:
import image from '@ohos.multimedia.image'
import rpc from '@ohos.rpc'
class MySequence implements rpc.Parcelable {
pixel_map;
constructor(pixelmap : image.PixelMap) {
this.pixel_map = pixelmap;
}
marshalling(messageSequence : rpc.MessageSequence) {
this.pixel_map.marshalling(messageSequence);
console.log('marshalling');
return true;
}
unmarshalling(messageSequence : rpc.MessageSequence) {
image.createPixelMap(new ArrayBuffer(96), {size: { height:4, width: 6}}).then((pixelParcel : image.PixelMap) => {
pixelParcel.unmarshalling(messageSequence).then(async (pixelMap : image.PixelMap) => {
this.pixel_map = pixelMap;
await pixelMap.getImageInfo().then((imageInfo : image.ImageInfo) => {
console.log("unmarshalling information h:" + imageInfo.size.height + "w:" + imageInfo.size.width);
})
})
});
return true;
}
}
async function Demo() {
const color : ArrayBuffer = new ArrayBuffer(96);
let bufferArr : Uint8Array = new Uint8Array(color);
for (let i = 0; i < bufferArr.length; i++) {
bufferArr[i] = 0x80;
}
let opts : image.InitializationOptions = {
editable: true,
pixelFormat: 4,
size: { height: 4, width: 6 },
alphaType: 3
}
let pixelMap : image.PixelMap|undefined = undefined;
await image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
pixelMap = pixelmap;
})
if (pixelMap != undefined) {
// 序列化
let parcelable : MySequence = new MySequence(pixelMap);
let data : rpc.MessageSequence = rpc.MessageSequence.create();
data.writeParcelable(parcelable);
// 反序列化 rpc获取到data
let ret : MySequence = new MySequence(pixelMap);
data.readParcelable(ret);
}
}
release7+
release():Promise<void>
释放PixelMap对象,使用Promise形式返回释放结果。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回释放结果。 |
示例:
import {BusinessError} from '@ohos.base'
pixelmap.release().then(() => {
console.log('Succeeded in releasing pixelmap object.');
}).catch((error : BusinessError) => {
console.log('Failed to release pixelmap object.');
})
release7+
release(callback: AsyncCallback<void>): void
释放PixelMap对象,使用callback形式返回释放结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 异步返回释放结果。 |
示例:
import {BusinessError} from '@ohos.base'
pixelmap.release((err : BusinessError) => {
if (err != undefined) {
console.log('Failed to release pixelmap object.');
} else {
console.log('Succeeded in releasing pixelmap object.');
}
})
image.createImageSource
createImageSource(uri: string): ImageSource
通过传入的uri创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。当前支持格式有:.jpg .png .gif .bmp .webp RAW SVG10+。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回ImageSource类实例,失败时返回undefined。 |
示例:
//Stage模型
const context : Context = getContext(this);
const path : string = context.cacheDir + "/test.jpg";
const imageSourceApi : image.ImageSource = image.createImageSource(path);
//FA模型
import featureAbility from '@ohos.ability.featureAbility';
const context : featureAbility.Context = featureAbility.getContext();
const path : string = context.getCacheDir() + "/test.jpg";
const imageSourceApi : image.ImageSource = image.createImageSource(path);
image.createImageSource9+
createImageSource(uri: string, options: SourceOptions): ImageSource
通过传入的uri创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。当前支持格式有:.jpg .png .gif .bmp .webp RAW SVG10+。 |
options | SourceOptions | 是 | 图片属性,包括图片序号与默认属性值。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回ImageSource类实例,失败时返回undefined。 |
示例:
let sourceOptions : image.SourceOptions = { sourceDensity: 120 };
let imageSource : image.ImageSource = image.createImageSource('test.png', sourceOptions);
image.createImageSource7+
createImageSource(fd: number): ImageSource
通过传入文件描述符来创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符fd。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回ImageSource类实例,失败时返回undefined。 |
示例:
const imageSourceApi : image.ImageSource = image.createImageSource(0);
image.createImageSource9+
createImageSource(fd: number, options: SourceOptions): ImageSource
通过传入文件描述符来创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符fd。 |
options | SourceOptions | 是 | 图片属性,包括图片序号与默认属性值。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回ImageSource类实例,失败时返回undefined。 |
示例:
let sourceOptions : image.SourceOptions = { sourceDensity: 120 };
const imageSourceApi : image.ImageSource = image.createImageSource(0, sourceOptions);
image.createImageSource9+
createImageSource(buf: ArrayBuffer): ImageSource
通过缓冲区创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buf | ArrayBuffer | 是 | 图像缓冲区数组。 |
示例:
const buf : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
const imageSourceApi : image.ImageSource = image.createImageSource(buf);
image.createImageSource9+
createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource
通过缓冲区创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buf | ArrayBuffer | 是 | 图像缓冲区数组。 |
options | SourceOptions | 是 | 图片属性,包括图片序号与默认属性值。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回ImageSource类实例,失败时返回undefined。 |
示例:
const data : ArrayBuffer= new ArrayBuffer(112);
const imageSourceApi : image.ImageSource = image.createImageSource(data);
image.CreateIncrementalSource9+
CreateIncrementalSource(buf: ArrayBuffer): ImageSource
通过缓冲区以增量的方式创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buf | ArrayBuffer | 是 | 增量数据。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回图片源,失败时返回undefined。 |
示例:
const buf : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
const imageSourceIncrementalSApi : image.ImageSource = image.CreateIncrementalSource(buf);
image.CreateIncrementalSource9+
CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
通过缓冲区以增量的方式创建图片源实例。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buf | ArrayBuffer | 是 | 增量数据。 |
options | SourceOptions | 否 | 图片属性,包括图片序号与默认属性值。 |
返回值:
类型 | 说明 |
---|---|
ImageSource | 返回图片源,失败时返回undefined。 |
示例:
const buf : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
const imageSourceIncrementalSApi : image.ImageSource = image.CreateIncrementalSource(buf);
ImageSource
图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过createImageSource构建一个ImageSource实例。
属性
系统能力: SystemCapability.Multimedia.Image.ImageSource
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
supportedFormats | Array<string> | 是 | 否 | 支持的图片格式,包括:png,jpeg,bmp,gif,webp,RAW。 |
getImageInfo
getImageInfo(index: number, callback: AsyncCallback<ImageInfo>): void
获取指定序号的图片信息,使用callback形式返回图片信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 创建图片源时的序号。 |
callback | AsyncCallback<ImageInfo> | 是 | 获取图片信息回调,异步返回图片信息对象。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.getImageInfo(0,(error : BusinessError, imageInfo : image.ImageInfo) => {
if(error) {
console.log('getImageInfo failed.');
} else {
console.log('getImageInfo succeeded.');
}
})
getImageInfo
getImageInfo(callback: AsyncCallback<ImageInfo>): void
获取图片信息,使用callback形式返回图片信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<ImageInfo> | 是 | 获取图片信息回调,异步返回图片信息对象。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.getImageInfo((err : BusinessError, imageInfo : image.ImageInfo) => {
console.log('Succeeded in obtaining the image information.');
})
getImageInfo
getImageInfo(index?: number): Promise<ImageInfo>
获取图片信息,使用Promise形式返回图片信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 否 | 创建图片源时的序号,不选择时默认为0。 |
返回值:
类型 | 说明 |
---|---|
Promise<ImageInfo> | 返回获取到的图片信息。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.getImageInfo(0)
.then((imageInfo : image.ImageInfo) => {
console.log('Succeeded in obtaining the image information.');
}).catch((error : BusinessError) => {
console.log('Failed to obtain the image information.');
})
getImageProperty7+
getImageProperty(key:string, options?: GetImagePropertyOptions): Promise<string>
获取图片中给定索引处图像的指定属性键的值,用Promise形式返回结果,仅支持JPEG文件,且需要包含exif信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 图片属性名。 |
options | GetImagePropertyOptions | 否 | 图片属性,包括图片序号与默认属性值。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
示例:
imageSourceApi.getImageProperty("BitsPerSample")
.then((data : string) => {
console.log('Succeeded in getting the value of the specified attribute key of the image.');
})
getImageProperty7+
getImageProperty(key:string, callback: AsyncCallback<string>): void
获取图片中给定索引处图像的指定属性键的值,用callback形式返回结果,仅支持JPEG文件,且需要包含exif信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 图片属性名。 |
callback | AsyncCallback<string> | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.getImageProperty("BitsPerSample",(error : BusinessError, data : string) => {
if(error) {
console.log('Failed to get the value of the specified attribute key of the image.');
} else {
console.log('Succeeded in getting the value of the specified attribute key of the image.');
}
})
getImageProperty7+
getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback<string>): void
获取图片指定属性键的值,callback形式返回结果,仅支持JPEG文件,且需要包含exif信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 图片属性名。 |
options | GetImagePropertyOptions | 是 | 图片属性,包括图片序号与默认属性值。 |
callback | AsyncCallback<string> | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
示例:
import {BusinessError} from '@ohos.base'
let property : image.GetImagePropertyOptions = { index: 0, defaultValue: '9999' }
imageSourceApi.getImageProperty("BitsPerSample",property,(error : BusinessError, data : string) => {
if(error) {
console.log('Failed to get the value of the specified attribute key of the image.');
} else {
console.log('Succeeded in getting the value of the specified attribute key of the image.');
}
})
modifyImageProperty9+
modifyImageProperty(key: string, value: string): Promise<void>
通过指定的键修改图片属性的值,使用Promise形式返回结果,仅支持JPEG文件,且需要包含exif信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 图片属性名。 |
value | string | 是 | 属性值。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
imageSourceApi.modifyImageProperty("ImageWidth", "120").then(() => {
imageSourceApi.getImageProperty("ImageWidth").then( (w : string) => {
console.info('w', w);
})
})
modifyImageProperty9+
modifyImageProperty(key: string, value: string, callback: AsyncCallback<void>): void
通过指定的键修改图片属性的值,callback形式返回结果,仅支持JPEG文件,且需要包含exif信息。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 图片属性名。 |
value | string | 是 | 属性值。 |
callback | AsyncCallback<void> | 是 | 修改属性值,callback返回结果。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.modifyImageProperty("ImageWidth", "120",(err : BusinessError) => {
if (err != undefined) {
console.info('modifyImageProperty Failed');
} else {
console.info('modifyImageProperty Succeeded');
}
})
updateData9+
updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number): Promise<void>
更新增量数据,使用Promise形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buf | ArrayBuffer | 是 | 增量数据。 |
isFinished | boolean | 是 | 是否更新完。 |
value | number | 是 | 偏移量。 |
length | number | 是 | 数组长。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
import {BusinessError} from '@ohos.base'
const array : ArrayBuffer = new ArrayBuffer(100);
imageSourceApi.updateData(array, false, 0, 10).then(() => {
console.info('Succeeded in updating data.');
}).catch((err: BusinessError) => {
console.error(`Failed to update data.code is ${err.code},message is ${err.message}`);
})
updateData9+
updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback<void>): void
更新增量数据,callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buf | ArrayBuffer | 是 | 增量数据。 |
isFinished | boolean | 是 | 是否更新完。 |
value | number | 是 | 偏移量。 |
length | number | 是 | 数组长。 |
callback | AsyncCallback<void> | 是 | 回调表示成功或失败。 |
示例:
import {BusinessError} from '@ohos.base'
const array : ArrayBuffer = new ArrayBuffer(100);
imageSourceApi.updateData(array, false, 0, 10, (err: BusinessError) => {
if (err != undefined) {
console.error(`Failed to update data.code is ${err.code},message is ${err.message}`);
} else {
console.info('Succeeded in updating data.');
}
})
createPixelMap7+
createPixelMap(options?: DecodingOptions): Promise<PixelMap>
通过图片解码参数创建PixelMap对象。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | DecodingOptions | 否 | 解码参数。 |
返回值:
类型 | 说明 |
---|---|
Promise<PixelMap> | 异步返回Promise对象。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.createPixelMap().then((pixelmap : image.PixelMap) => {
console.log('Succeeded in creating pixelmap object through image decoding parameters.');
}).catch((error : BusinessError) => {
console.log('Failed to create pixelmap object through image decoding parameters.');
})
createPixelMap7+
createPixelMap(callback: AsyncCallback<PixelMap>): void
通过默认参数创建PixelMap对象,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<PixelMap> | 是 | 通过回调返回PixelMap对象。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.createPixelMap((err : BusinessError, pixelmap : image.PixelMap) => {
console.info('Succeeded in creating pixelmap object.');
})
createPixelMap7+
createPixelMap(options: DecodingOptions, callback: AsyncCallback<PixelMap>): void
通过图片解码参数创建PixelMap对象。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | DecodingOptions | 是 | 解码参数。 |
callback | AsyncCallback<PixelMap> | 是 | 通过回调返回PixelMap对象。 |
示例:
import {BusinessError} from '@ohos.base'
let decodingOptions : image.DecodingOptions = {
sampleSize: 1,
editable: true,
desiredSize: { width: 1, height: 2 },
rotate: 10,
desiredPixelFormat: 3,
desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
index: 0
};
imageSourceApi.createPixelMap(decodingOptions, (err : BusinessError, pixelmap : image.PixelMap) => {
console.log('Succeeded in creating pixelmap object.');
})
createPixelMapList10+
createPixelMapList(options?: DecodingOptions): Promise
通过图片解码参数创建PixelMap数组。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | DecodingOptions | 否 | 解码参数。 |
返回值:
类型 | 说明 |
---|---|
Promise |
异步返回PixeMap数组。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980103 | If the image data unsupport |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980118 | If the image plugin create failed |
示例:
import {BusinessError} from '@ohos.base'
let decodeOpts: image.DecodingOptions = {
sampleSize: 1,
editable: true,
desiredSize: { width: 198, height: 202 },
rotate: 0,
desiredPixelFormat: 3,
index: 0,
};
imageSourceApi.createPixelMapList(decodeOpts).then((pixelmaplist: Array<image.PixelMap>) => {
console.log('Succeeded in creating pixelmaplist object.');
}).catch((err: BusinessError) => {
console.error(`Failed to create pixelmaplist object.code is ${err.code},message is ${err.message}`);
})
createPixelMapList10+
createPixelMapList(callback: AsyncCallback
通过默认参数创建PixelMap数组,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback |
是 | 通过回调返回PixelMap数组。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980103 | If the image data unsupport |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980118 | If the image plugin create failed |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.createPixelMapList((err: BusinessError, pixelmaplist: Array<image.PixelMap>) => {
if (err != undefined) {
console.error(`Failed to create pixelmaplist object.code is ${err.code},message is ${err.message}`);
} else {
console.info('Succeeded in creating pixelmaplist object.');
}
})
createPixelMapList10+
createPixelMapList(options: DecodingOptions, callback: AsyncCallback
通过图片解码参数创建PixelMap数组,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | DecodingOptions | 是 | 解码参数。 |
callback | AsyncCallback |
是 | 通过回调返回PixelMap数组。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980103 | If the image data unsupport |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980118 | If the image plugin create failed |
示例:
import {BusinessError} from '@ohos.base'
let decodeOpts : image.DecodingOptions = {
sampleSize: 1,
editable: true,
desiredSize: { width: 198, height: 202 },
rotate: 0,
desiredPixelFormat: 3,
index: 0,
};
imageSourceApi.createPixelMapList(decodeOpts, (err: BusinessError, pixelmaplist: Array<image.PixelMap>) => {
if (err != undefined) {
console.error(`Failed to create pixelmaplist object.code is ${err.code},message is ${err.message}`);
} else {
console.log('Succeeded in creating pixelmaplist object.');
}
})
getDelayTimeList10+
getDelayTimeList(callback: AsyncCallback
获取图像延迟时间数组,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback |
是 | 通过回调返回延迟时间数组。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980113 | If the image format unknown |
62980116 | If the image decode failed |
62980118 | If the image plugin create failed |
62980122 | If the image decode head abnormal |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.getDelayTimeList((err: BusinessError, delayTimes: Array<number>) => {
if (err != undefined) {
console.error(`Failed to get delayTimes object.code is ${err.code},message is ${err.message}`);
} else {
console.log('Succeeded in delayTimes object.');
}
})
getDelayTimeList10+
getDelayTimeList(): Promise
获取图像延迟时间数组,使用Promise形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
返回值:
类型 | 说明 |
---|---|
Promise |
Promise实例,异步返回延迟时间数组。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980113 | If the image format unknown |
62980116 | If the image decode failed |
62980118 | If the image plugin create failed |
62980122 | If the image decode head abnormal |
示例:
imageSourceApi.getDelayTimeList().then((delayTimes : Array<number>) => {
console.log('Succeeded in delayTimes object.');
}).catch((err: BusinessError) => {
console.error(`Failed to get delayTimes object.code is ${err.code},message is ${err.message}`);
})
getFrameCount10+
getFrameCount(callback: AsyncCallback<number>): void;
获取图像帧数,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 通过回调返回图像帧数。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980113 | If the image format unknown |
62980116 | If the image decode failed |
62980118 | If the image plugin create failed |
62980122 | If the image decode head abnormal |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.getFrameCount((err: BusinessError, frameCount: number) => {
if (err != undefined) {
console.error(`Failed to get frame count.code is ${err.code},message is ${err.message}`);
} else {
console.log('Succeeded in getting frame count.');
}
})
getFrameCount10+
getFrameCount(): Promise<number>;
获取图像帧数,使用Promise形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise实例,异步返回图像帧数。 |
错误码:
以下错误码的详细介绍请参见Image错误码。
错误码ID | 错误信息 |
---|---|
62980096 | If the operation failed |
62980110 | If the image source data error |
62980111 | If the image source data incomplete |
62980113 | If the image format unknown |
62980116 | If the image decode failed |
62980118 | If the image plugin create failed |
62980122 | If the image decode head abnormal |
示例:
imageSourceApi.getFrameCount().then((frameCount: number) => {
console.log('Succeeded in getting frame count.');
}).catch((err : BusinessError) => {
console.error(`Failed to get frame count.code is ${err.code},message is ${err.message}`);
})
release
release(callback: AsyncCallback<void>): void
释放图片源实例,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 资源释放回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.release((err : BusinessError) => {
if (err != undefined) {
console.log('Failed to release the image source instance.');
} else {
console.log('Succeeded in releasing the image source instance.');
}
})
release
release(): Promise<void>
释放图片源实例,使用Promise形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageSource
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,异步返回结果。 |
示例:
import {BusinessError} from '@ohos.base'
imageSourceApi.release().then(()=>{
console.log('Succeeded in releasing the image source instance.');
}).catch((error : BusinessError) => {
console.log('Failed to release the image source instance.');
})
image.createImagePacker
createImagePacker(): ImagePacker
创建ImagePacker实例。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
返回值:
类型 | 说明 |
---|---|
ImagePacker | 返回ImagePacker实例。 |
示例:
const imagePackerApi : image.ImagePacker = image.createImagePacker();
ImagePacker
图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过createImagePacker构建一个ImagePacker实例,当前支持格式有:jpeg webp png。
属性
系统能力: SystemCapability.Multimedia.Image.ImagePacker
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
supportedFormats | Array<string> | 是 | 否 | 图片打包支持的格式 jpeg webp png。 |
packing
packing(source: ImageSource, option: PackingOption, callback: AsyncCallback<ArrayBuffer>): void
图片压缩或重新打包,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
source | ImageSource | 是 | 打包的图片源。 |
option | PackingOption | 是 | 设置打包参数。 |
callback | AsyncCallback<ArrayBuffer> | 是 | 获取图片打包回调,返回打包后数据。 |
示例:
import {BusinessError} from '@ohos.base'
const imageSourceApi : image.ImageSource = image.createImageSource(0);
let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 };
imagePackerApi.packing(imageSourceApi, packOpts, (err : BusinessError, data : ArrayBuffer) => {})
packing
packing(source: ImageSource, option: PackingOption): Promise<ArrayBuffer>
图片压缩或重新打包,使用Promise形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
source | ImageSource | 是 | 打包的图片源。 |
option | PackingOption | 是 | 设置打包参数。 |
返回值:
类型 | 说明 |
---|---|
Promise<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
示例:
import {BusinessError} from '@ohos.base'
const imageSourceApi : image.ImageSource = image.createImageSource(0);
let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 }
imagePackerApi.packing(imageSourceApi, packOpts)
.then( (data : ArrayBuffer) => {
console.log('packing succeeded.');
}).catch((error : BusinessError) => {
console.log('packing failed.');
})
packing8+
packing(source: PixelMap, option: PackingOption, callback: AsyncCallback<ArrayBuffer>): void
图片压缩或重新打包,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
source | PixelMap | 是 | 打包的PixelMap资源。 |
option | PackingOption | 是 | 设置打包参数。 |
callback | AsyncCallback<ArrayBuffer> | 是 | 获取图片打包回调,返回打包后数据。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 }
imagePackerApi.packing(pixelmap, packOpts, (err : BusinessError, data : ArrayBuffer) => {
console.log('Succeeded in packing the image.');
})
})
packing8+
packing(source: PixelMap, option: PackingOption): Promise<ArrayBuffer>
图片压缩或重新打包,使用Promise形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
source | PixelMap | 是 | 打包的PixelMap源。 |
option | PackingOption | 是 | 设置打包参数。 |
返回值:
类型 | 说明 |
---|---|
Promise<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
示例:
import {BusinessError} from '@ohos.base'
const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4
let bufferArr : Uint8Array = new Uint8Array(color);
let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => {
let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 }
imagePackerApi.packing(pixelmap, packOpts)
.then( (data : ArrayBuffer) => {
console.log('Succeeded in packing the image.');
}).catch((error : BusinessError) => {
console.log('Failed to pack the image..');
})
})
release
release(callback: AsyncCallback<void>): void
释放图片打包实例,使用callback形式返回结果。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 释放回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
imagePackerApi.release((err : BusinessError)=>{
if (err != undefined) {
console.log('Failed to release image packaging.');
} else {
console.log('Succeeded in releasing image packaging.');
}
})
release
release(): Promise<void>
释放图片打包实例,使用Promise形式返回释放结果。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
imagePackerApi.release().then(()=>{
console.log('Succeeded in releasing image packaging.');
}).catch((error : BusinessError)=>{
console.log('Failed to release image packaging.');
})
image.createImageReceiver9+
createImageReceiver(width: number, height: number, format: number, capacity: number): ImageReceiver
通过宽、高、图片格式、容量创建ImageReceiver实例。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
width | number | 是 | 图像的默认宽度。 |
height | number | 是 | 图像的默认高度。 |
format | number | 是 | 图像格式,取值为ImageFormat常量(目前仅支持 ImageFormat:JPEG 和 4)。 |
capacity | number | 是 | 同时访问的最大图像数。 |
返回值:
类型 | 说明 |
---|---|
ImageReceiver | 如果操作成功,则返回ImageReceiver实例。 |
示例:
let receiver : image.ImageReceiver = image.createImageReceiver(8192, 8, 2000, 8);
ImageReceiver9+
图像接收类,用于获取组件surface id,接收最新的图片和读取下一张图片,以及释放ImageReceiver实例。
在调用以下方法前需要先创建ImageReceiver实例。
属性
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
size | Size | 是 | 否 | 图片大小。 |
capacity | number | 是 | 否 | 同时访问的图像数。 |
format | ImageFormat | 是 | 否 | 图像格式。 |
getReceivingSurfaceId9+
getReceivingSurfaceId(callback: AsyncCallback<string>): void
用于获取一个surface id供Camera或其他组件使用。使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<string> | 是 | 回调函数,返回surface id。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.getReceivingSurfaceId((err : BusinessError, id : string) => {
if(err) {
console.log('getReceivingSurfaceId failed.');
} else {
console.log('getReceivingSurfaceId succeeded.');
}
});
getReceivingSurfaceId9+
getReceivingSurfaceId(): Promise<string>
用于获取一个surface id供Camera或其他组件使用。使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
返回值:
类型 | 说明 |
---|---|
Promise<string> | 异步返回surface id。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.getReceivingSurfaceId().then( (id : string) => {
console.log('getReceivingSurfaceId succeeded.');
}).catch((error : BusinessError) => {
console.log('getReceivingSurfaceId failed.');
})
readLatestImage9+
readLatestImage(callback: AsyncCallback<Image>): void
从ImageReceiver读取最新的图片,并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Image> | 是 | 回调函数,返回最新图像。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.readLatestImage((err : BusinessError, img : image.Image) => {
if(err) {
console.log('readLatestImage failed.');
} else {
console.log('readLatestImage succeeded.');
}
});
readLatestImage9+
readLatestImage(): Promise<Image>
从ImageReceiver读取最新的图片,并使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
返回值:
类型 | 说明 |
---|---|
Promise<Image> | 异步返回最新图片。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.readLatestImage().then((img : image.Image) => {
console.log('readLatestImage succeeded.');
}).catch((error : BusinessError) => {
console.log('readLatestImage failed.');
})
readNextImage9+
readNextImage(callback: AsyncCallback<Image>): void
从ImageReceiver读取下一张图片,并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Image> | 是 | 回调函数,返回下一张图片。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.readNextImage((err : BusinessError, img : image.Image) => {
if(err) {
console.log('readNextImage failed.');
} else {
console.log('readNextImage succeeded.');
}
});
readNextImage9+
readNextImage(): Promise<Image>
从ImageReceiver读取下一张图片,并使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
返回值:
类型 | 说明 |
---|---|
Promise<Image> | 异步返回下一张图片。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.readNextImage().then((img : image.Image) => {
console.log('readNextImage succeeded.');
}).catch((error : BusinessError) => {
console.log('readNextImage failed.');
})
on9+
on(type: ‘imageArrival’, callback: AsyncCallback<void>): void
接收图片时注册回调。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 注册事件的类型,固定为’imageArrival’,接收图片时触发。 |
callback | AsyncCallback<void> | 是 | 注册的事件回调。 |
示例:
receiver.on('imageArrival', () => {})
release9+
release(callback: AsyncCallback<void>): void
释放ImageReceiver实例并使用回调返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回调函数,返回操作结果。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.release((err : BusinessError) => {})
release9+
release(): Promise<void>
释放ImageReceiver实例并使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
返回值:
类型 | 说明 |
---|---|
Promise<void> | 异步返回操作结果。 |
示例:
import {BusinessError} from '@ohos.base'
receiver.release().then(() => {
console.log('release succeeded.');
}).catch((error : BusinessError) => {
console.log('release failed.');
})
image.createImageCreator9+
createImageCreator(width: number, height: number, format: number, capacity: number): ImageCreator
通过宽、高、图片格式、容量创建ImageCreator实例。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
width | number | 是 | 图像的默认宽度。 |
height | number | 是 | 图像的默认高度。 |
format | number | 是 | 图像格式,如YCBCR_422_SP,JPEG。 |
capacity | number | 是 | 同时访问的最大图像数。 |
返回值:
类型 | 说明 |
---|---|
ImageCreator | 如果操作成功,则返回ImageCreator实例。 |
示例:
let creator : image.ImageCreator = image.createImageCreator(8192, 8, 4, 8);
ImageCreator9+
图像创建模块,用于请求图像原生数据区域,并开放给应用编译原生图像数据的能力。 在调用以下方法前需要先创建ImageCreator实例,ImageCreator不支持多线程。
属性
系统能力: SystemCapability.Multimedia.Image.ImageCreator
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
capacity | number | 是 | 否 | 同时访问的图像数。 |
format | ImageFormat | 是 | 否 | 图像格式。 |
dequeueImage9+
dequeueImage(callback: AsyncCallback<Image>): void
从空闲队列中获取buffer图片,用于绘制UI内容,并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Image> | 是 | 回调函数,返回最新图片。 |
示例:
import {BusinessError} from '@ohos.base'
creator.dequeueImage((err : BusinessError, img : image.Image) => {
if (err) {
console.info('dequeueImage failed.');
}
console.info('dequeueImage succeeded.');
});
dequeueImage9+
dequeueImage(): Promise<Image>
从空闲队列中获取buffer图片,用于绘制UI内容,并使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
返回值:
类型 | 说明 |
---|---|
Promise<Image> | 返回绘制的图像。 |
示例:
import {BusinessError} from '@ohos.base'
creator.dequeueImage().then((img : image.Image) => {
console.info('dequeueImage succeeded.');
}).catch((error : BusinessError) => {
console.log('dequeueImage failed: ' + error);
})
queueImage9+
queueImage(interface: Image, callback: AsyncCallback<void>): void
将绘制好的图片放入Dirty队列,并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
interface | Image | 是 | 绘制好的buffer图像。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
creator.dequeueImage().then((img : image.Image) => {
//绘制图片
img.getComponent(4).then( (component : image.Component) => {
let bufferArr : Uint8Array = new Uint8Array(component.byteBuffer);
for (let i = 0; i < bufferArr.length; i += 4) {
bufferArr[i] = 0; //B
bufferArr[i + 1] = 0; //G
bufferArr[i + 2] = 255; //R
bufferArr[i + 3] = 255; //A
}
})
creator.queueImage(img, (err : BusinessError) => {
if (err) {
console.info('queueImage failed: ' + err);
}
console.info('queueImage succeeded');
})
})
queueImage9+
queueImage(interface: Image): Promise<void>
将绘制好的图片放入Dirty队列,并使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
interface | Image | 是 | 绘制好的buffer图像。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
creator.dequeueImage().then((img : image.Image) => {
//绘制图片
img.getComponent(4).then((component : image.Component) => {
let bufferArr : Uint8Array = new Uint8Array(component.byteBuffer);
for (let i = 0; i < bufferArr.length; i += 4) {
bufferArr[i] = 0; //B
bufferArr[i + 1] = 0; //G
bufferArr[i + 2] = 255; //R
bufferArr[i + 3] = 255; //A
}
})
creator.queueImage(img).then(() => {
console.info('queueImage succeeded.');
}).catch((error : BusinessError) => {
console.info('queueImage failed: ' + error);
})
})
on9+
on(type: ‘imageRelease’, callback: AsyncCallback<void>): void
监听imageRelease事件,并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 监听事件类型,如’imageRelease’。 |
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
creator.on('imageRelease', (err : BusinessError) => {
if (err) {
console.info('on faild' + err);
}
console.info('on succeeded');
})
release9+
release(callback: AsyncCallback<void>): void
释放当前图像,并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
creator.release((err : BusinessError) => {
if (err) {
console.info('release failed: ' + err);
}
console.info('release succeeded');
});
release9+
release(): Promise<void>
释放当前图像,并使用promise返回结果。
系统能力: SystemCapability.Multimedia.Image.ImageCreator
返回值:
类型 | 说明 |
---|---|
Promise<void> | 获取回调,失败时返回错误信息。 |
示例:
import {BusinessError} from '@ohos.base'
creator.release().then(() => {
console.info('release succeeded');
}).catch((error : BusinessError) => {
console.info('release failed');
})
Image9+
提供基本的图像操作,包括获取图像信息、读写图像数据。调用readNextImage和readLatestImage接口时会返回image。
属性
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
clipRect | Region | 是 | 是 | 要裁剪的图像区域。 |
size | Size | 是 | 否 | 图像大小。 |
format | number | 是 | 否 | 图像格式,参考PixelMapFormat。 |
getComponent9+
getComponent(componentType: ComponentType, callback: AsyncCallback<Component>): void
根据图像的组件类型从图像中获取组件缓存并使用callback返回结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
componentType | ComponentType | 是 | 图像的组件类型。 |
callback | AsyncCallback<Component> | 是 | 用于返回组件缓冲区。 |
示例:
import {BusinessError} from '@ohos.base'
img.getComponent(4, (err : BusinessError, component : image.Component) => {
if(err) {
console.log('getComponent failed.');
} else {
console.log('getComponent succeeded.');
}
})
getComponent9+
getComponent(componentType: ComponentType): Promise<Component>
根据图像的组件类型从图像中获取组件缓存并使用Promise方式返回结果。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
componentType | ComponentType | 是 | 图像的组件类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<Component> | 用于返回组件缓冲区的promise实例。 |
示例:
img.getComponent(4).then((component : image.Component) => { })
release9+
release(callback: AsyncCallback<void>): void
释放当前图像并使用callback返回结果。
在接收另一个图像前必须先释放对应资源。
系统能力: SystemCapability.Multimedia.Image.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 返回操作结果。 |
示例:
import {BusinessError} from '@ohos.base'
img.release((err : BusinessError) =>{
if (err != undefined) {
console.log('Failed to release the image source instance.');
} else {
console.log('Succeeded in releasing the image source instance.');
}
})
release9+
release(): Promise<void>
释放当前图像并使用Promise方式返回结果。
在接收另一个图像前必须先释放对应资源。
系统能力: SystemCapability.Multimedia.Image.Core
返回值:
类型 | 说明 |
---|---|
Promise<void> | promise返回操作结果。 |
示例:
import {BusinessError} from '@ohos.base'
img.release().then(() =>{
console.log('release succeeded.');
}).catch((error : BusinessError) => {
console.log('release failed.');
})
PositionArea7+
表示图片指定区域内的数据。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
pixels | ArrayBuffer | 是 | 否 | 像素。 |
offset | number | 是 | 否 | 偏移量。 |
stride | number | 是 | 否 | 像素间距,stride >= region.size.width*4。 |
region | Region | 是 | 否 | 区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 |
ImageInfo
表示图片信息。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
size | Size | 是 | 是 | 图片大小。 |
density9+ | number | 是 | 是 | 像素密度,单位为ppi。 |
Size
表示图片尺寸。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
height | number | 是 | 是 | 输出图片的高。 |
width | number | 是 | 是 | 输出图片的宽。 |
PixelMapFormat7+
枚举,图片像素格式。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 值 | 说明 |
---|---|---|
UNKNOWN | 0 | 未知格式。 |
RGB_565 | 2 | 格式为RGB_565 |
RGBA_8888 | 3 | 格式为RGBA_8888 |
BGRA_88889+ | 4 | 格式为BGRA_8888 |
RGB_8889+ | 5 | 格式为RGB_888 |
ALPHA_89+ | 6 | 格式为ALPHA_8 |
RGBA_F169+ | 7 | 格式为RGBA_F16 |
NV219+ | 8 | 格式为NV21 |
NV129+ | 9 | 格式为NV12 |
AlphaType9+
枚举,图像的透明度类型。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 值 | 说明 |
---|---|---|
UNKNOWN | 0 | 未知透明度。 |
OPAQUE | 1 | 没有alpha或图片全透明。 |
PREMUL | 2 | RGB前乘alpha。 |
UNPREMUL | 3 | RGB不前乘alpha。 |
ScaleMode9+
枚举,图像的缩放模式。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 值 | 说明 |
---|---|---|
CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 |
FIT_TARGET_SIZE | 0 | 图像适合目标尺寸的效果。 |
SourceOptions9+
ImageSource的初始化选项。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
sourceDensity | number | 是 | 是 | ImageSource的密度。 |
sourcePixelFormat | PixelMapFormat | 是 | 是 | 图片像素格式。 |
sourceSize | Size | 是 | 是 | 图像像素大小。 |
InitializationOptions8+
PixelMap的初始化选项。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
alphaType9+ | AlphaType | 是 | 是 | 透明度。 |
editable | boolean | 是 | 是 | 是否可编辑。 |
pixelFormat | PixelMapFormat | 是 | 是 | 像素格式。 |
scaleMode9+ | ScaleMode | 是 | 是 | 缩略值。 |
size | Size | 是 | 是 | 创建图片大小。 |
DecodingOptions7+
图像解码设置选项。
系统能力: SystemCapability.Multimedia.Image.ImageSource
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
sampleSize | number | 是 | 是 | 缩略图采样大小,当前只能取1。 |
rotate | number | 是 | 是 | 旋转角度。 |
editable | boolean | 是 | 是 | 是否可编辑。当取值为false时,图片不可二次编辑,如crop等操作将失败。 |
desiredSize | Size | 是 | 是 | 期望输出大小。 |
desiredRegion | Region | 是 | 是 | 解码区域。 |
desiredPixelFormat | PixelMapFormat | 是 | 是 | 解码的像素格式。 |
index | number | 是 | 是 | 解码图片序号。 |
fitDensity9+ | number | 是 | 是 | 图像像素密度,单位为ppi。 |
Region7+
表示区域信息。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
size | Size | 是 | 是 | 区域大小。 |
x | number | 是 | 是 | 区域横坐标。 |
y | number | 是 | 是 | 区域纵坐标。 |
PackingOption
表示图片打包选项。
系统能力: SystemCapability.Multimedia.Image.ImagePacker
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
format | string | 是 | 是 | 目标格式。当前只支持jpg、webp 和 png。 |
quality | number | 是 | 是 | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 |
bufferSize9+ | number | 是 | 是 | 用于设置图片大小,默认为10M。 |
GetImagePropertyOptions7+
表示查询图片属性的索引。
系统能力: SystemCapability.Multimedia.Image.ImageSource
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
index | number | 是 | 是 | 图片序号。 |
defaultValue | string | 是 | 是 | 默认属性值。 |
PropertyKey7+
枚举,Exif(Exchangeable image file format)图片信息。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 值 | 说明 |
---|---|---|
BITS_PER_SAMPLE | “BitsPerSample” | 每个像素比特数。 |
ORIENTATION | “Orientation” | 图片方向。 |
IMAGE_LENGTH | “ImageLength” | 图片长度。 |
IMAGE_WIDTH | “ImageWidth” | 图片宽度。 |
GPS_LATITUDE | “GPSLatitude” | 图片纬度。 |
GPS_LONGITUDE | “GPSLongitude” | 图片经度。 |
GPS_LATITUDE_REF | “GPSLatitudeRef” | 纬度引用,例如N或S。 |
GPS_LONGITUDE_REF | “GPSLongitudeRef” | 经度引用,例如W或E。 |
DATE_TIME_ORIGINAL9+ | “DateTimeOriginal” | 拍摄时间,例如2022:09:06 15:48:00。当前为只读属性。 |
EXPOSURE_TIME9+ | “ExposureTime” | 曝光时间,例如1/33 sec。当前为只读属性。 |
SCENE_TYPE9+ | “SceneType” | 拍摄场景模式,例如人像、风光、运动、夜景等。当前为只读属性。 |
ISO_SPEED_RATINGS9+ | “ISOSpeedRatings” | ISO感光度,例如400。当前为只读属性。 |
F_NUMBER9+ | “FNumber” | 光圈值,例如f/1.8。当前为只读属性。 |
DATE_TIME10+ | “DateTime” | 日期时间,当前为只读属性。 |
GPS_TIME_STAMP10+ | “GPSTimeStamp” | GPS时间戳,当前为只读属性。 |
GPS_DATE_STAMP10+ | “GPSDateStamp” | GPS日期戳,当前为只读属性。 |
IMAGE_DESCRIPTION10+ | “ImageDescription” | 图像信息描述,当前为只读属性。 |
MAKE10+ | “Make” | 生产商,当前为只读属性。 |
MODEL10+ | “Model” | 设备型号,当前为只读属性。 |
PHOTO_MODE10+ | “PhotoMode “ | 拍照模式,当前为只读属性。 |
SENSITIVITY_TYPE10+ | “SensitivityType” | 灵敏度类型,当前为只读属性。 |
STANDARD_OUTPUT_SENSITIVITY10+ | “StandardOutputSensitivity” | 标准输出灵敏度,当前为只读属性。 |
RECOMMENDED_EXPOSURE_INDEX10+ | “RecommendedExposureIndex” | 推荐曝光指数,当前为只读属性。 |
ISO_SPEED10+ | “ISOSpeedRatings” | ISO速度等级,当前为只读属性。 |
APERTURE_VALUE10+ | “ApertureValue” | 光圈值,当前为只读属性。 |
EXPOSURE_BIAS_VALUE10+ | “ExposureBiasValue” | 曝光偏差值,当前为只读属性。 |
METERING_MODE10+ | “MeteringMode” | 测光模式,当前为只读属性。 |
LIGHT_SOURCE10+ | “LightSource” | 光源,当前为只读属性。 |
FLASH 10+ | “Flash” | 闪光灯,记录闪光灯状态,当前为只读属性。 |
FOCAL_LENGTH 10+ | “FocalLength” | 焦距,当前为只读属性。 |
USER_COMMENT 10+ | “UserComment” | 用户注释,当前为只读属性。 |
PIXEL_X_DIMENSION 10+ | “PixelXDimension” | 像素X尺寸,当前为只读属性。 |
PIXEL_Y_DIMENSION10+ | “PixelYDimension” | 像素Y尺寸,当前为只读属性。 |
WHITE_BALANCE 10+ | “WhiteBalance” | 白平衡,当前为只读属性。 |
FOCAL_LENGTH_IN_35_MM_FILM 10+ | “FocalLengthIn35mmFilm” | 焦距35毫米胶片,当前为只读属性。 |
CAPTURE_MODE 10+ | “HwMnoteCaptureMode” | 捕获模式,当前为只读属性。 |
PHYSICAL_APERTURE 10+ | “HwMnotePhysicalAperture” | 物理孔径,光圈大小,当前为只读属性。 |
ImageFormat9+
枚举,图片格式。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 值 | 说明 |
---|---|---|
YCBCR_422_SP | 1000 | YCBCR422半平面格式。 |
JPEG | 2000 | JPEG编码格式。 |
ComponentType9+
枚举,图像的组件类型。
系统能力: SystemCapability.Multimedia.Image.ImageReceiver
名称 | 值 | 说明 |
---|---|---|
YUV_Y | 1 | 亮度信息。 |
YUV_U | 2 | 色度信息。 |
YUV_V | 3 | 色度信息。 |
JPEG | 4 | JPEG 类型。 |
Component9+
描述图像颜色分量。
系统能力: SystemCapability.Multimedia.Image.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
componentType | ComponentType | 是 | 否 | 组件类型。 |
rowStride | number | 是 | 否 | 行距。 |
pixelStride | number | 是 | 否 | 像素间距。 |
byteBuffer | ArrayBuffer | 是 | 否 | 组件缓冲区。 |
补充说明
SVG标签说明
从API version 10开始支持SVG标签,使用版本为(SVG) 1.1,当前支持的标签列表有: - a - circla - clipPath - defs - ellipse - feBlend - feColorMatrix - feComposite - feDiffuseLighting - feDisplacementMap - feDistantLight - feFlood - feGaussianBlur - feImage - feMorphology - feOffset - fePointLight - feSpecularLighting - feSpotLight - feTurbulence - filter - g - image - line - linearGradient - mask - path - pattern - polygon - polyline - radialGradient - rect - stop - svg - text - textPath - tspan - use
你可能感兴趣的鸿蒙文章
harmony 鸿蒙BundleStatusCallback
harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)
harmony 鸿蒙@ohos.distributedBundle (分布式包管理)
harmony 鸿蒙@ohos.bundle (Bundle模块)
harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦