HarmonyOS 文本生成码图后保存图片无内容

使用一段文字生成码图成功 , 想要把码图保存成图片, 图片保存成功后内容没有, 里面是空白的。

HarmonyOS
2024-11-14 09:00:34
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

​要通过申请ACL权限。需要在module.json5文件中配置ohos.permission.WRITE_IMAGEVIDEO权限。

参考下这部分代码:​

import { abilityAccessCtrl, common } from '@kit.AbilityKit'; 
import { photoAccessHelper } from '@kit.MediaLibraryKit'; 
import fs from '@ohos.file.fs'; 
import { http } from '@kit.NetworkKit'; 
import { promptAction } from '@kit.ArkUI'; 
@Entry 
@Component 
struct Index { 
  @State message: string = 'Hello World' 
  private appContext: common.Context = getContext(this); 
  private atManager = abilityAccessCtrl.createAtManager(); 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Button("保存图片") 
          .margin({ top: 10 }) 
          .onClick(async (event: ClickEvent) => { 
            //申请权限并保存图片到图库 
            try { 
              //申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'  
              this.atManager.requestPermissionsFromUser(this.appContext, ['ohos.permission.WRITE_IMAGEVIDEO']) 
                .then(async () => { 
                  //权限申请成功,保存到图库 
                  let context = getContext(); 
                  //获取相册管理模块的实例,用于访问和修改相册中的媒体文件 
                  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 
                  // onClick触发后10秒内通过createAsset接口创建图片文件,10秒后createAsset权限收回 
                  let uri = await phAccessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg'); 
                  // 创建媒体文件 
                  console.info('createAsset successfully, uri: ' + uri); 
                  let file = fs.openSync(uri, fs.OpenMode.READ_WRITE || fs.OpenMode.CREATE); 
                  let totalSize = 0; 
                  let httpRequest = http.createHttp(); 
                  httpRequest.on("dataReceive", (data: ArrayBuffer) => { 
                    let writeLen = fs.writeSync(file.fd, data); 
                    totalSize = totalSize + writeLen; 
                  }); 
     httpRequest.requestInStream('https://developer.huawei.com/allianceCmsResource/resource/HUAWEI_Developer_VUE/images/homeNew/next-pc.png', 
                    { method: http.RequestMethod.GET, connectTimeout: 3000, }, httpCode => { 
                      console.info('requestInStream HTTP CODE is', httpCode) 
                    }) 
                  httpRequest.on("dataEnd", () => { 
                    fs.close(file); 
                    promptAction.showDialog({ 
                      title: "下载图片结束,并保存至相册", 
                      message: `图片大小:${totalSize}字节` 
                    }) 
                  }) 
                }) 
            } catch (err) { 
              console.error(`requestPermissionsFromUser call Failed! error: ${err.code}`); 
            } 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-11-14 15:39:01
相关问题
粘贴文本,IDE把内容自动换行了
245浏览 • 1回复 待解决
HarmonyOS 图片保存
12浏览 • 1回复 待解决
Scan Kit无法识别多个
1713浏览 • 1回复 待解决
HarmonyOS如何感知扫描二维
343浏览 • 1回复 待解决
中奖忘了保存怎么办?
5616浏览 • 1回复 待解决
HarmonyOS 图片问题
281浏览 • 1回复 待解决
HarmonyOS 二维生成的demo
213浏览 • 2回复 待解决
HarmonyOS图片保存相册问题
431浏览 • 1回复 待解决
HarmonyOS 保存图片文件异常
321浏览 • 1回复 待解决
HarmonyOS 保存图片到相册问题
359浏览 • 1回复 待解决
如何生成时的镂空遮罩?
234浏览 • 1回复 待解决