• Lv0
    粉丝0

积分46 / 贡献0

提问2答案被采纳1文章0

如何读取本地资源Resource,转换成Pixelmap,给到canvas里绘制

battier 显示全部楼层 发表于 2024-2-9 08:08:31
【问题描述】
在实现一个自定义组件,希望能动态读取本地文件,转换成pixelmap,请问有什么办法?

【运行环境】
硬件:RK3568
ROM版本:4.1
DevEvoStudio版本:
SDK版本:API 10

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论2

马迪

沙发 发表于 2024-2-9 16:36:12
参考了imageknife的代码

首先要把文件读出出来,转成arraybuff。 如果是资源文件的话,可以通过resourceManager读取
  1.   let resBuf: ArrayBuffer = this.context.resourceManager.getMediaContentSync($r('app.media.startIcon').id) .buffer
复制代码


再通过@ohos.multimedia.image,把arraybuff解析成pixelmap
  1.   let imageSource: image.ImageSource = image.createImageSource(resBuf);
  2.     let decodingOption: image.DecodingOptions = {
  3.       editable: true,
  4.     }

  5.     imageSource.createPixelMap(decodingOptions)
  6.       .then((pixelmap: PixelMap) => {

  7.                 // 拿到了pixelmap

  8.                imageSource.release()
  9.       })
复制代码

battier

发表于 2024-2-17 21:03  IP属地: 广东省广州市

回复 马迪: 实测,有效

【1 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部