gpt4 book ai didi

image - 使用 node.js 跨平台调整图像大小

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:04 24 4
gpt4 key购买 nike

我用node-webkit写了一个小工具。我选择 node-webkit 的原因之一是可以轻松地将您的应用程序分发到所有主要平台。

我现在想做的事情是调整文件存储上的一堆图像的大小。

我发现很多软件包都可以通过 ImageMagick 执行此操作。这需要用户安装 ImageMagick,这很糟糕......

使用网络服务是没有选择的。很容易就有大约 600 张图像。

如果没有解决方案,我只会在安装了 imagemagick 的情况下运行该任务。

最佳答案

您可以使用canvas标签来调整图像的大小。

以新尺寸将图像加载到 Canvas 中:

...
var tempCanvas = document.createElement('canvas');
tempCanvas.width = newWidth;
tempCanvas.height = newHeight;
var ctx = tempCanvas.getContext('2d');
var img = new Image();
img.src = imageSrc;
img.onload = function () {
ctx.drawImage(this, 0, 0);
};

从 Canvas 中获取调整大小的图像:

...
var image = canvas.toDataURL('image/png');
image = image.replace('data:image/png;base64,', '');
var buffer = new Buffer(image, 'base64');
fs.writeFile('filename.png', buffer, function (error) {
if (error) {
// TODO handle error
}
});
...

在此示例中,生成的图像将为 png。您可以使用 node-webkit 支持的任何结果类型。如果您有不同的图像类型作为输入,并希望以相同的类型输出,则需要添加一些代码,将正确的 mime 类型设置为 canvas.toDataURL

关于image - 使用 node.js 跨平台调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21033221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com