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
1天前
浏览
收藏 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
微信
回复
1天前
相关问题
HarmonyOS base64image
82浏览 • 1回复 待解决
HarmonyOS Image如何显示base64的图片?
484浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
259浏览 • 1回复 待解决
HarmonyOS base64编码问题
672浏览 • 1回复 待解决
HarmonyOS 图片转base64
89浏览 • 1回复 待解决
HarmonyOS base64解码报错
1064浏览 • 1回复 待解决
HarmonyOS base64编解码
38浏览 • 0回复 待解决
HarmonyOS 图片Base64编码
74浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
180浏览 • 1回复 待解决
HarmonyOS base64编码的API
214浏览 • 1回复 待解决
HarmonyOS string怎么base64和decodeBase64
70浏览 • 1回复 待解决
HarmonyOS 图片进行base64编码报错
735浏览 • 1回复 待解决
HarmonyOS 中文base64加密解密乱码
599浏览 • 1回复 待解决
HarmonyOS 如何做base64加密?
28浏览 • 1回复 待解决
怎么把PixelMap图片转BASE64
9457浏览 • 1回复 待解决
HarmonyOS如何将图片转Base64
934浏览 • 1回复 待解决
HarmonyOS 加解密base64转换
28浏览 • 1回复 待解决
HarmonyOS 图片操作,合成后导出base64
235浏览 • 1回复 待解决
PixelMap怎么转Base64?(非Java)
3391浏览 • 2回复 待解决
arkts中怎么实现base64编码?
868浏览 • 1回复 待解决
HarmonyOS 图片压缩和图片转base64
340浏览 • 1回复 待解决
如何base64转换成图片?
10342浏览 • 2回复 待解决