【图片】【缩放】图片缩放到指定大小(scale方式)并生成新的image.PixelMap实例

39 阅读1分钟

图片缩放在图像编缉时是常见的操作。下面的示例实现了通地Canvas的方式对image.PixelMap类型的图片实例,缩放至指定的宽度,并生成新的image.PixelMap实例。

export function zoomPixelMapInWidth_scale(imagePixelMap: PixelMap,
  width:number): image.PixelMap {
  const imageInfo = imagePixelMap.getImageInfoSync();
  const buffer = new ArrayBuffer(imagePixelMap.getPixelBytesNumber());
  imagePixelMap.readPixelsToBufferSync(buffer);
  const options: image.InitializationOptions = {
    srcPixelFormat: imageInfo.pixelFormat,
    pixelFormat: imageInfo.pixelFormat,
    size: imageInfo.size
  };
  let newImage = image.createPixelMapSync(buffer, options);
  newImage.scale(width/imageInfo.size.width,width/imageInfo.size.width);
  return newImage;
}

调用代码如下

// imagePixelMap是image.PixelMap类型实例,256是px
let imagePixelMap1 = zoomPixelMapInWidth_scale(imagePixelMap,256);