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);
  }
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%')
  }
}
分享
微博
QQ
微信
回复
2024-12-25 10:34:53
相关问题
HarmonyOS base64image
336浏览 • 1回复 待解决
HarmonyOS Image如何显示base64的图片?
678浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
642浏览 • 1回复 待解决
HarmonyOS 图片Base64编码
353浏览 • 1回复 待解决
HarmonyOS base64解码报错
1359浏览 • 1回复 待解决
HarmonyOS base64编解码
317浏览 • 0回复 待解决
HarmonyOS base64编码问题
892浏览 • 1回复 待解决
HarmonyOS 图片转base64
420浏览 • 1回复 待解决
HarmonyOS pixelMap怎么转base64
66浏览 • 1回复 待解决
照片文件转Base64
185浏览 • 1回复 待解决
HarmonyOS string怎么base64和decodeBase64
275浏览 • 1回复 待解决
HarmonyOS base64编码的API
378浏览 • 1回复 待解决
HarmonyOS base64解码内容缺少
261浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
382浏览 • 1回复 待解决
HarmonyOS 如何做base64加密?
440浏览 • 1回复 待解决
HarmonyOS base64的PDF如何展示
84浏览 • 1回复 待解决
HarmonyOS 图片进行base64编码报错
980浏览 • 1回复 待解决
HarmonyOS @ohos/base64 (V2.0.0)
178浏览 • 1回复 待解决
HarmonyOS 中文base64加密解密乱码
809浏览 • 1回复 待解决
HarmonyOS 录制的视频转base64
371浏览 • 1回复 待解决
PixelMap怎么转Base64?(非Java)
3641浏览 • 2回复 待解决
arkts中怎么实现base64编码?
1131浏览 • 1回复 待解决