HarmonyOS 鸿蒙Next 自定义组件如何引用media资源文件夹下的图片转化成ImageBitmap

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 自定义组件如何引用media资源文件夹下的图片转化成ImageBitmap

自定义组件如何引用media资源文件夹下的图片转化成ImageBitmap

2 回复
参考demo:
深色代码主题
复制
getContext(this).resourceManager.getMediaContent($r("app.media.img1")).then(

  (data) => {

    let arrayBuffer = data.buffer.slice(data.byteOffset, data.byteLength + data.byteOffset)

    let imageSource: image.ImageSource = image.createImageSource(arrayBuffer);

    let value: image.ImageInfo = {size:{height:0, width:0},density:0,stride:0};

    imageSource.getImageInfo( (err, val) => { if (err) { return; } value = val });

    let opts: image.DecodingOptions = { editable: true, desiredSize: { height: value.size.height, width: value.size.width }};

    imageSource.createPixelMap(opts, (err, pixelMap) => {

      let img = new ImageBitmap(pixelMap)

      // do something

    })

  }

)

更多关于HarmonyOS 鸿蒙Next 自定义组件如何引用media资源文件夹下的图片转化成ImageBitmap的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next中,自定义组件引用media资源文件夹下的图片并转化成ImageBitmap,可以通过以下步骤实现:

  1. 资源文件准备

    • 将图片文件放置在resources/media目录下。
    • 确保图片文件的命名符合规范,例如my_image.png
  2. 资源引用

    • 在自定义组件的代码中,通过资源ID引用图片。资源ID由系统自动生成,通常使用$r前缀加资源路径,例如$r/media/my_image
  3. 加载并转化为ImageBitmap

    • 使用ImageProvidergetImageBitmap方法加载图片资源。
    • 示例代码:
      import imageProvider from '@ohos.multimedia.imageProvider';
      
      function loadImageBitmap(context) {
          const imageProviderHelper = imageProvider.getImageProviderHelper(context);
          const uri = "$r/media/my_image";
          return imageProviderHelper.getImageBitmapByUri(uri);
      }
      
  4. 使用ImageBitmap

    • 加载成功后,ImageBitmap对象可以用于自定义组件中的图像显示。

注意,上述代码为示例,具体实现需根据鸿蒙系统的API文档调整。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部