HarmonyOS Image加载base64失败

我想请问下Image组件加载Base64的问题,我使用 Image('data:image/[png|jpeg|bmp|webp];base64,[base64 data])这种方式加载图片失败,提示我failed to create image loader,image source type not supported ,但是我将 base64 通过以下方法保存,却能在本地文件看到图片,不知道是否格式配置或者base64需要经过处理才能显示

export async function writeFile(data: string): Promise<string> {

  let uri = ''
  try {
    let filePath = filesDir + "/1.";
    uri = fileUri.getUriFromPath(filePath);
    let file = fileIo.openSync(filePath, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE);
    console.info("file fd: " + file.fd);
    const reg = new RegExp("data:image/\\w+;base64,")
    const base64 = data.replace(reg, "");
    console.log("base64flag", base64)
    const dataBuffer = buffer.from(base64, 'base64')
    let writeLen = fileIo.writeSync(file.fd, dataBuffer.buffer);
    hilog.info(0xA0c0d0, 'uri', uri)
    fileIo.closeSync(file);
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
HarmonyOS
2024-12-25 08:46:58
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
superinsect

[base64 data]是Base64字符串数据,首先先在在线网站上验证下base64有没有问题,注意字符串中不能加中括号"[]"

示例demo如下:

const base64String= `/xxxxxxxxxxxxxxxxxx`    //base64编码
@Preview
@Entry
@Component
struct UiImage {
  @State imagestr: string = ''
  base64Image() {
    let begin = 'data:image/png;base64,' //后面不要有中括号
    return begin + base64String
  }
  aboutToAppear(): void {
    this.imagestr = this.base64Image()
  }

  build() {
    Row() {
      Column() {
        Image(this.imagestr)
          .width(300)
          .height(100)
          .backgroundColor(Color.Green)
          .onError((msg)=>{
            console.log('-----',JSON.stringify(msg))
          })
      }.width('100%')
    }.height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
分享
微博
QQ
微信
回复
2024-12-25 10:34:53
相关问题
HarmonyOS base64image
754浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
1455浏览 • 1回复 待解决
HarmonyOS Image如何显示base64的图片?
1278浏览 • 1回复 待解决
HarmonyOS base64编解码
972浏览 • 0回复 待解决
HarmonyOS 图片Base64编码
832浏览 • 1回复 待解决
HarmonyOS base64解码报错
1953浏览 • 1回复 待解决
HarmonyOS base64编码问题
1390浏览 • 1回复 待解决
HarmonyOS 图片转base64
937浏览 • 1回复 待解决
照片文件转Base64
622浏览 • 1回复 待解决
HarmonyOS pixelMap怎么转base64
607浏览 • 1回复 待解决
HarmonyOS base64编码的API
751浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
860浏览 • 1回复 待解决
HarmonyOS base64解码内容缺少
621浏览 • 1回复 待解决
HarmonyOS string怎么base64和decodeBase64
616浏览 • 1回复 待解决
HarmonyOS 如何做base64加密?
930浏览 • 1回复 待解决
HarmonyOS @ohos/base64 (V2.0.0)
604浏览 • 1回复 待解决
HarmonyOS base64的PDF如何展示
444浏览 • 1回复 待解决
HarmonyOS 录制的视频转base64
850浏览 • 1回复 待解决
HarmonyOS 图片进行base64编码报错
1378浏览 • 1回复 待解决
HarmonyOS 中文base64加密解密乱码
1327浏览 • 1回复 待解决
PixelMap怎么转Base64?(非Java)
4337浏览 • 2回复 待解决
arkts中怎么实现base64编码?
1567浏览 • 1回复 待解决