你如何使用 wasm-vips 对图像进行重新采样?

How do you resample upscale an image using wasm-vips?

wasm-vips 是 libvips

的 browser/node 包装器

目标:

使用 wasm-vips

  1. 使用 lanzcos3 或 nohalo 等插值器的高级图像
  2. 在 upscale 方法中传入缓冲区而不是从文件中读取图像

读取图像的示例

 const vips = await Vips();

    let im = vips.Image.newFromFile('in.jpg');

但我不知道将图像重采样为 2017x2017 需要使用的函数和属性

看来我需要使用 vips.affine,如 vips 文档中所示。 https://www.libvips.org/API/current/libvips-resample.html#vips-affine

wasm-vips有仿射方法im.affine()但是我不知道怎么指定插值器比如lanzcos3。我还想传入一个 uint8array,而不是直接从文件中读取图像。

谢谢, 旦

我猜:

im.resize(2017 / im.width, {kernel: 'lanczos3'})

我会查看 newFromMemory 从 uint8 数组中读取。在 wasm-vips 问题跟踪器上提问:

https://github.com/kleisauke/wasm-vips

(是评论,根据要求变成了答案)