HarmonyOS 获取网络图片的PixelMap,如何进行center crop?

需要将新闻图片(网络图片)传给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。

阅读 465
1 个回答
logo
HarmonyOS
子站问答
访问
宣传栏