new ImageBitmap('image/sxt.jpg') 接口无效 (HarmonyOS 鸿蒙Next)

new ImageBitmap(‘image/sxt.jpg’) 接口无效 (HarmonyOS 鸿蒙Next)

场景:使用Canvas绘制在代码目录下的图片。

问题:绘制不出来,且不同开发板(均为RK3568,API等级分别为10和11)现象不同。

API:使用 const image: ImageBitmap = new ImageBitmap('image/sxt.jpg') 接口创建ImageBitmap对象,参考的文档是: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-components-canvas-imagebitmap-V5#imagebitmap-1

在两个不同rk3568开发板上,现象不同导致无法正确绘制:

  • 开发板1(API10):不会绘制出任何图像,输出 【image==null image.width image.height】 结果为 【false 0 0】,导致无法使用Canvas的context.drawImage方法绘制出来(未执行过close()函数)。
  • 开发板2(API11):可以绘制,可以正常输出 【image.width image.height】 的实际值,如下图上的 【173.3333333 173.3333333】,可以通过Canvas的context.drawImage方法绘制出来。

但这两个开发板直接使用 new ImageBitmap('image/sxt.jpg') 创建的对象均不能绘制,如果想绘制目前测试将其放到一个Map中,后续去通过键get到值才可以绘制(见附件图片)。

请问是new ImageBitmap这个构造函数不可用?还是用法不对?如何使用Canvas正确绘制出代码目录下的图片?


更多关于new ImageBitmap('image/sxt.jpg') 接口无效 (HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

感觉是个bug,可以升级下码?

你new ImageBitmap在Map之前先new出来,然后在塞map,试试打印呢?感觉new出来之后,需要一点点时间才能打印出值,开发板升级试试呢

更多关于new ImageBitmap('image/sxt.jpg') 接口无效 (HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,new ImageBitmap('image/sxt.jpg') 接口无效可能是因为该接口在当前版本的鸿蒙系统中未实现或不支持。鸿蒙系统的API与Web标准或其他操作系统(如Android、iOS)存在差异,某些Web标准API可能在鸿蒙中不可用或行为不同。

鸿蒙系统提供了自己的图像处理API,建议使用鸿蒙原生API来加载和处理图像。例如,可以使用Image组件或PixelMap类来处理图像数据。Image组件用于在UI中显示图像,而PixelMap类则用于对图像进行更底层的操作。

如果需要在鸿蒙中加载图像,建议使用ResourceManagerImageSource等鸿蒙原生API,而不是依赖于Web标准的ImageBitmap接口。

回到顶部