需要将新闻图片(网络图片)传给TextReader组件,目前实现的方式使用的贵团队给出的代码获取PixelMap,但是该方法是直接将图片的比例输出为1:1,不是center crop,导致图片显示比例异常。
目前的获取PixelMap的代码:
private imagePixelMap: Map<string, PixelMap> = new Map()
private options: image.DecodingOptions = {
sampleSize: 1,
rotate: 0,
editable: false,
desiredSize: {
width: 800,
height: 800
}
}
downLoadAndSave(imageUrl: string) {
if (this.imagePixelMap.has(imageUrl)) {
return
}
http.createHttp().request(imageUrl,
(error: BusinessError, data: http.HttpResponse) => {
if (error) {
ZHGLog.error(`http request failed with. Code: ${error.code}, message: ${error.message}`);
} else {
image.createImageSource(data.result as ArrayBuffer)
.createPixelMap(this.options)
.then((pixelMap: PixelMap) => {
this.saveImagePixelMap(imageUrl, pixelMap)
})
}
}
)
}
期望可实现将获取到的网络图片的pixelMap center crop。
获取到pixelMap后,可调用crop方法,根据输入的尺寸对图片进行裁剪,关于这块使用可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5\#crop9
或者使用如下链接中的裁切:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/image-transformation-V5\#开发步骤