HarmonyOS 拍照返回uri转bitmap问题

拍照返回 resultUri转换成bitmap 再转换base64 , 现在在Harmony OS中拍照返回uri 控件就可以直接显示了,怎么能把拍照返回的url先换bitmap ?

HarmonyOS
2024-08-09 16:00:21
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

请参考以下代码案例:

@State pixel: string | undefined = undefined; 
async uri2PixelMap() { 
  try { 
    let pickerProfile: picker.PickerProfile = { 
      cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK 
    }; 
    let pickerResult: picker.PickerResult = await picker.pick(getContext(this), 
      [picker.PickerMediaType.PHOTO], pickerProfile); 
    console.error("相册返回值=" + pickerResult.resultUri); 
    console.log("the pick pickerResult is:" + JSON.stringify(pickerResult.resultUri)); 
    const tempath = await this.beginScan(pickerResult.resultUri); 
    console.log(tempath) 
    const imageSource: image.ImageSource = image.createImageSource(tempath); 
    const pixelMap: image.PixelMap = await imageSource.createPixelMap(); 
    const imagePackerApi: image.ImagePacker = image.createImagePacker(); 
    let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 }; 
    imagePackerApi.packing(pixelMap, packOpts) 
      .then((data: ArrayBuffer) => { 
        console.info('packing succeeded.'); 
        let bufferArr = new Uint8Array(data) 
        let help = new util.Base64Helper 
        this.pixel = help.encodeToStringSync(bufferArr) 
        console.log("base64 => " + this.pixel) 
      }).catch((error: BusinessError) => { 
      console.error('packing failed.'); 
    }) 
    // pixelMap.release(); 
  } catch (error) { 
    let err = error as BusinessError; 
    console.error(`the pick call failed. error code: ${err.code}`); 
  } 
} 
build() { 
  Row() { 
    Column() { 
      Button(this.message) 
        .fontSize(50) 
        .fontWeight(FontWeight.Bold) 
        .onClick(() => { 
          this.uri2PixelMap() 
        }) 
      Image('data:image/jpeg;base64,' + this.pixel) 
        .width("100%") 
        .height("70%") 
        .border({ width: 1, color: Color.Red }) 
    } 
    .width('100%') 
  } 
  .height('100%') 
}
分享
微博
QQ
微信
回复
2024-08-09 18:02:17
相关问题
关于如何使用相机拍照模块拍照问题
1688浏览 • 0回复 待解决
HarmonyOS 相机旋转横屏拍照问题
112浏览 • 1回复 待解决
HarmonyOS TSArkTS用法问题
167浏览 • 1回复 待解决
HarmonyOS Want使用uri Schema唤醒app的问题
279浏览 • 1回复 待解决
HarmonyOS router 返回问题
181浏览 • 1回复 待解决
HarmonyOS 路由返回页面问题
317浏览 • 0回复 待解决
HarmonyOS关于TSArkTS的语法问题
302浏览 • 1回复 待解决
HarmonyOS 推送和uri配置
192浏览 • 1回复 待解决
HarmonyOS 页面数据携带返回问题
291浏览 • 1回复 待解决
HarmonyOS TextPickerDialog返回问题
239浏览 • 1回复 待解决
bitmap绘制内容需要支持清屏功能
657浏览 • 1回复 待解决
鸿蒙如何根据Component 得到bitmap
4895浏览 • 1回复 待解决
HarmonyOS JSON.parse 返回类型问题
176浏览 • 1回复 待解决
HarmonyOS 拦截系统返回手势问题
263浏览 • 1回复 待解决