HarmonyOS 鸿蒙Next相机实现双路预览后,帧数据怎样转成PixelMap
HarmonyOS 鸿蒙Next相机实现双路预览后,帧数据怎样转成PixelMap
ArrayBuffer转成PixelMap一直报错"Create PixelMap error",使用的API 11
部分代码如下,具体文件请看附件,使用文件时,请在module.json5中添加相机权限
“requestPermissions”: [
{
“name” : “ohos.permission.CAMERA”,
“reason”: “$string:descriptionCamera”,
“usedScene”: {
“abilities”: [
“EntryAbility”
],
“when”:“always”
}
}]
部分代码:
receiver.on(‘imageArrival’, () => {
receiver.readNextImage((err: BusinessError, nextImage: image.Image) => {
if (err || nextImage === undefined) {
console.error(‘readNextImage failed’);
return;
}
nextImage.getComponent(image.ComponentType.JPEG, async (err: BusinessError, imgComponent: image.Component) => {
if (err || imgComponent === undefined) {
console.error(‘getComponent failed’);
}
if (imgComponent && imgComponent.byteBuffer as ArrayBuffer) {
let imageArrayBuffer = imgComponent.byteBuffer as ArrayBuffer;
console.log(“我得到的图片数据:” + JSON.stringify(imageArrayBuffer))
console.log(“我得到的图片数据:” + imageArrayBuffer.byteLength)
console.error(“我有数据的”);
let imageSource: image.ImageSource = image.createImageSource(imageArrayBuffer);
try {
let aa: image.DecodingOptions = {
desiredSize: { width: 1920, height: 1080 }
}
await imageSource.createPixelMap(aa)
} catch (e) {
console.error(JSON.stringify(e))
}
} else {
console.error(‘byteBuffer is null’);
}
nextImage.release();
})
})
})
关于HarmonyOS 鸿蒙Next相机实现双路预览后,帧数据怎样转成PixelMap的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
createImageSource方法需要传递sourceOptions,获取相机预览的原始视频和创建预览流的profile的size要设置一致
this.previewProfilesObj2Com = previewProfiles[0];
。。。。
let sourceOptions : image.SourceOptions = {
sourceDensity: 120,
sourcePixelFormat: 8,
sourceSize: {
height: this.previewProfilesObj2Com.size.height,
width: this.previewProfilesObj2Com.size.width
}
}
let imageResource = image.createImageSource(imageArrayBuffer,sourceOptions);
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
遇到同样的问题, 请问你问题解决了吗?
这个有可能是大小设置得不对的原因
同样的问题,你们解决了吗