HarmonyOS 关于照片的压缩咨询

是否有提供压缩照片至指定大小的api?目前相机照片尺寸比较大,而上传至服务器有文件大小限制,需要压缩一下再上传。

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

压缩图片尺寸宽高大小,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/image-transformation-V5并参考以下demo:

async dealWithPic(targetWidth:
number, targetHeight:
number, targetPixelSize:
number)
{
  let path = getContext().filesDir + '/pic.png'
  // path为已获得的沙箱路径
  const imageSource: image.ImageSource = image.createImageSource(path);
  let decodingOptions: image.DecodingOptions = {
    editable: true
  }
  //创建pixelMap
  this.pixelMap = await imageSource.createPixelMap(decodingOptions);
  console.log(this.pixelMap.getPixelBytesNumber());
  //指定压缩宽、高、大小
  // this.packingDetail(500, 500, 100)

  if (this.pixelMap) {
    console.info("before scaling pixelmap." + this.pixelMap.getPixelBytesNumber());
    let imageInfo = await this.pixelMap.getImageInfo();
    let a = this.pixelMap
    //计算压缩比
    let scaleX: number = targetWidth / imageInfo.size.width;
    let scaleY: number = targetHeight / imageInfo.size.height;
    this.pixelMap.scale(scaleX, scaleY, (err: BusinessError) => {
      if (err) {
        console.error("Failed to scale pixelmap.");
        return;
      } else {
        console.log("in scaling pixelmap." + a.getPixelBytesNumber());
      }
    });
  }
  let imagePackerApi = image.createImagePacker();
  let packOpts: image.PackingOption = { format: "image/jpeg", quality: 100 };
  imagePackerApi.packing(this.pixelMap, packOpts).then((data: ArrayBuffer) => {
    console.info("in 100 quality data" + data.byteLength)
    this.compressPictures(data, targetPixelSize, 99);
  });
}
分享
微博
QQ
微信
回复
3天前
相关问题
关于图库中原图压缩比例咨询
362浏览 • 1回复 待解决
HarmonyOS zip压缩咨询
42浏览 • 1回复 待解决
HarmonyOS 关于vp问题咨询
30浏览 • 1回复 待解决
HarmonyOS 关于native aki库功能咨询
148浏览 • 1回复 待解决
HarmonyOS 关于GIF图片播放功能咨询
66浏览 • 1回复 待解决
HarmonyOS 关于router.back问题咨询
476浏览 • 1回复 待解决
HarmonyOS 关于页面埋点方案咨询
480浏览 • 1回复 待解决
关于数据缓存问题咨询
303浏览 • 1回复 待解决
HarmonyOS 咨询关于短时后台任务
50浏览 • 1回复 待解决
HarmonyOS 关于Swiper+LazyForEach方案咨询
36浏览 • 1回复 待解决
关于系统定位缓存问题咨询
697浏览 • 1回复 待解决
HarmonyOS 关于react-native-fs问题咨询
35浏览 • 1回复 待解决
HarmonyOS 关于Provide数据传递问题咨询
422浏览 • 1回复 待解决
关于屏幕安全区域问题咨询
355浏览 • 1回复 待解决
聊一聊关于流转问题咨询
6868浏览 • 1回复 待解决