HarmonyOS 鸿蒙Next 如何将app.media.app_icon,转换为ImageBitmap
HarmonyOS 鸿蒙Next 如何将app.media.app_icon,转换为ImageBitmap 看了社区的一个帖子,只是把media下的文件转为PixelMap
想问一下大家,PixelMap如何再转为ImageBitmap呀?
我想实现通过Canvas来展示一张图片!代码如下:
import { image } from '@kit.ImageKit'
@Entry
@Component
struct Index {
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
// private img: ImageBitmap = new ImageBitmap("image/main_nav_bg.jpg")
private img_1?: PixelMap
private img_2?: ImageBitmap
aboutToAppear(): void {
try {
// 媒体文件字节数组
getContext().resourceManager.getMediaContent($r('app.media.startIcon').id, (error, value:ArrayBuffer) => {
let opts: image.InitializationOptions = {
editable: true,
pixelFormat: 3,
size: { height: 300, width: 300 }
}
// 创建PixelMap
image.createPixelMap(value, opts).then((pixelmap) => {
// TODO 这个位置如何把PixelMap转换为ImageBitmap??
})
});
} catch (error) {
console.error(`callback getMediaContent failed, error code: ${error.code}, message: ${error.message}.`)
}
}
build() {
Column() {
Canvas(this.context)
.width('100%')
.height('50%')
.backgroundColor(Color.Transparent)
.onReady(() => {
this.context.drawImage(this.img_2, 0, 0, 50, 60, 0, 0, 50, 60)
})
}
.backgroundColor('#c0c0c0')
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Start)
}
}
更多关于HarmonyOS 鸿蒙Next 如何将app.media.app_icon,转换为ImageBitmap的实战教程也可以访问 https://www.itying.com/category-93-b0.html
原来可以这样解决啊,学会了
更多关于HarmonyOS 鸿蒙Next 如何将app.media.app_icon,转换为ImageBitmap的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
所以还是没办法把PixelMap转换为ImageBitmap吗?
用ImageBitmap的构造函数传入PixelMap对象后,width、height都是undefined
我的PixelMap对象是通过ImageSource.createPixmap()函数拿到的, 使用PixelMap.getImageInfo.size可以拿到正确的宽高,但是转换成ImageBitmap后,使用ImageBitmap.width 、height宽高都是undefined了
上面有个评论,可以看看对你有没有帮助,我按照那个老哥的办法是行的通的,
谢谢,我看到了,但是那个是用PixelMap作为this.context.drawImage()函数的参数了把,而不是用ImageBitmap。所以意思是改用PixelMap放弃ImageBitmap吗?
可以在pages文件夹同级新建一个common文件夹,图片资源放在这个common中。然后通过ImageBitmap接口转化。
找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
将app.media.app_icon,转换为ImageBitmap就是为了不在pages文件下存放图片,但是现在看来,好像实现不了~
drawImage()方法是支持PixelMap类型的,但是图片并未展示出来
遇到了同样的问题,你解决了吗?
没解决~我把图片放在ets文件夹下面的子文件夹了,

