压缩图片尺寸宽高大小,可以参考以下文档: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); }); }
压缩图片尺寸宽高大小,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/image-transformation-V5并参考以下demo: