HarmonyOS 图片文件写入成功,但在Image中不显示

图片文件写入成功,但在Image中不显示

Image(this.scrollImageFile) //不显示

  private clickShare(context: CommonUIContext, fileUri: string) {
    SnapshotHelper.loadPixelMap('centerScroll', (_error, pixels) => {
      FileHelper.writeToImageFile(fileUri, pixels, () => {
        this.shareBySystem(context, fileUri)
        this.scrollImageFile = fileUri
      })
    })
  }

Scenario:

import fs, { WriteOptions } from '@ohos.file.fs';
import { ImageHelper } from './ImageHelper';
import { BusinessError } from '@kit.BasicServicesKit';
import { TAG } from '../retrofit/HttpHelper';

export class FileHelper {

  static writeToImageFile(filePath: string, imagePixels: PixelMap, callback: () => void) {
    const width = 100
    const height = 100
    const buff = ImageHelper.readPixelsToBuffer(imagePixels, width, height)

    let stream = fs.createStreamSync(filePath, 'w')
    // let writeOption: WriteOptions = {
    //   offset: 0,
    //   length: buff.byteLength,
    //   encoding: 'utf-8'  //WriteOptions只支持utf-8
    // }

    stream.write(buff, (err: BusinessError, bytesWritten: number) => {
      if (err) {
        console.error(TAG, "FileHelper,write stream failed with error message: " + err.message + ", error code: " + err.code)
      } else {
        if (bytesWritten) {
          console.info(TAG, "FileHelper,write succeed and size is:" + bytesWritten);
          stream.close()
        }
      }

      if (callback) {
        callback()
      }
    })
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

如果图片文件写入成功,但在Image组件中不显示,可能是因为没有正确获取图片的路径或URI。需要确保在Image组件的src属性中使用的是正确的图片路径或URI。如果使用了文件下载接口下载图片,请确保监听到下载任务接口并获取返回的token,然后通过token来获取图片的路径。

还需要查看一下fileUri的格式是不是符合Image的入参格式

image组件参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-image-V5

路径上是要加的。

拿到文件的沙箱路径后,通过调用@ohos.file.fileuri模块的fileuri.getUriFromPath(file.path)将沙箱路径转化为沙箱uri,传入之后即可正常显示沙箱图片,接口参考如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fileuri-V5

分享
微博
QQ
微信
回复
21h前
相关问题
HarmonyOS Image组件网络图片不显示
441浏览 • 1回复 待解决
image组件,files目录的文件不显示
1654浏览 • 1回复 待解决
HarmonyOS web加载页面图片不显示
537浏览 • 1回复 待解决
HarmonyOS 网络图片加载不显示
139浏览 • 1回复 待解决
HarmonyOS CustomDialogController 不显示
316浏览 • 1回复 待解决
HarmonyOS Image显示GIF图片时的控制
315浏览 • 1回复 待解决
HarmonyOS Image组件无法显示网络图片
1163浏览 • 1回复 待解决
HarmonyOS webloadData不显示内容
31浏览 • 1回复 待解决
Image如何在多态下显示不同图片
634浏览 • 1回复 待解决
HarmonyOS Image如何显示base64的图片
509浏览 • 1回复 待解决
HarmonyOS 应用图标不显示
42浏览 • 1回复 待解决