你如何使用 wasm-vips 对图像进行重新采样?
How do you resample upscale an image using wasm-vips?
wasm-vips 是 libvips
的 browser/node 包装器
目标:
使用 wasm-vips
- 使用 lanzcos3 或 nohalo 等插值器的高级图像
- 在 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
(是评论,根据要求变成了答案)
wasm-vips 是 libvips
的 browser/node 包装器目标:
使用 wasm-vips
- 使用 lanzcos3 或 nohalo 等插值器的高级图像
- 在 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
(是评论,根据要求变成了答案)