HarmonyOS 如何读取本地文件流?

例如:file://media/Photo/24/IMG_1719560718_023/1719560618835.png

HarmonyOS
2024-12-27 16:52:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以参考如下demo:

import fs from '@ohos.file.fs';
import { resourceManager } from '@kit.LocalizationKit';
import { image } from '@kit.ImageKit';
import { fileUri } from '@kit.CoreFileKit';
@Entry
@Component
struct FunAPage {
  @State message: string = 'Hello funA';
  @State filePath:string = ''
  @State imageUri:string = ''
  @State pixelMap:image.PixelMap  | undefined = undefined
  aboutToAppear(): void {
    this.setImageUriToFile()
  }
  setImageUriToFile(){
    let context = getContext(this);
    let filePath = context.filesDir + '/test.png';
    //文件的字节数据,该处可替换为其他各种来源的字节数据
    let arrayBuff = context.resourceManager.getRawFileContentSync('food.png').buffer
    let file = fs.openSync(filePath,fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
    fs.writeSync(file.fd,arrayBuff)
    fs.closeSync(file.fd)
    this.filePath = filePath
  }
  getImageUri(){
    this.imageUri = fileUri.getUriFromPath(this.filePath)
  }

  async getPixelMapByImage():Promise<image.PixelMap>{
    const context : Context = getContext(this);
    // 获取resourceManager资源管理器
    const resourceMgr : resourceManager.ResourceManager = context.resourceManager;
    let rawFileDescriptor = await resourceMgr.getRawFd('food.png')
    const imageSource : image.ImageSource = image.createImageSource(rawFileDescriptor);
    let decodingOptions : image.DecodingOptions = {
      editable: true,
      desiredPixelFormat: 3,
    }
    // 创建pixelMap并进行简单的旋转和缩放
    const pixelMap:image.PixelMap = await imageSource.createPixelMap(decodingOptions)
    this.pixelMap =  pixelMap
    return pixelMap;
  }

  build() {
    Row() {
      Column() {
        Button('uri图片展示')
          .onClick(()=>{
            this.getImageUri()
          })
        Image(this.imageUri)
          .width(200)
          .height(200)
        Button('pixelMap图片展示')
          .onClick(()=>{
            this.getPixelMapByImage()
          })
        Image(this.pixelMap)
          .width(200)
          .height(200)
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
2024-12-27 19:07:31
相关问题
HarmonyOS 如何读取本地json文件
539浏览 • 1回复 待解决
如何读取本地JSON文件
2669浏览 • 1回复 待解决
HarmonyOS fs读取本地文件
596浏览 • 1回复 待解决
HarmonyOS ArkTS如何读取本地json文件
322浏览 • 1回复 待解决
HarmonyOS 读取本地RawFile文件失败
585浏览 • 1回复 待解决
stageMode下如何读取本地json 文件
3863浏览 • 1回复 待解决
Harmony 如何读取本地视频文件路径?
15166浏览 • 2回复 待解决
读取文件的方式,有人知道吗?
2215浏览 • 1回复 待解决
怎么读取本地音频文件列表?
6760浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
3591浏览 • 1回复 待解决
HarmonyOS 读取本地json文件转成字符串
428浏览 • 1回复 待解决
ArkTS如何读取本地json?
7479浏览 • 1回复 待解决
HarmonyOS如何读取文件
1039浏览 • 1回复 待解决
如何读取本地/预制数据库?
1645浏览 • 1回复 待解决
HarmonyOS 文件问题
372浏览 • 1回复 待解决
HarmonyOS 如何读取项目文件
111浏览 • 1回复 待解决
HarmonyOS 文件读取
349浏览 • 1回复 待解决
HarmonyOS libs下文件如何读取
213浏览 • 1回复 待解决
HarmonyOS文件转成
289浏览 • 1回复 待解决
如何根据uri读取文件?
3596浏览 • 1回复 待解决
HarmonyOS 如何查看本地文件
340浏览 • 1回复 待解决
如何的形式读写文件
1228浏览 • 1回复 待解决