1

我想通过保持纵横比并使用nodejs用透明度填充空白空间来将图像调整为精确大小。

我可以使用画布来做到这一点。但由于一些服务器操作系统问题,我无法使用画布。

我尝试使用 imageMagick 和 gm。但是找不到像这样的任何选项。请告诉我一个方法来做到这一点。

提前致谢。

4

2 回答 2

3

在 ImageMagick 中,您可以通过以下方式调整大小并填充到确切大小

convert image -resize WxH -background none -gravity center -extent WxH output

输入:

在此处输入图像描述

在这里,我将背景设置为黑色,以便您可以看到是否填充它。

convert lena.jpg -resize 400x300 -background black -gravity center -extent 400x300 lena1.jpg


在此处输入图像描述

于 2018-11-23T18:17:21.507 回答
0

如果您已成功使用画布调整图像大小,您可以查看https://github.com/Automattic/node-canvas这个 repo。

如前所述,您还可以通过 NodeJS 中的进程使用 ImageMagick 调整图像大小(http://www.imagemagick.org/Usage/resize/

convert dragon.gif  -resize 64x64  resize_dragon.gif

如果您有很多图像,我建议您编写一个终端脚本(NodeJS 也可以实现)。

希望对您有所帮助,如果您有更多疑问,请随时提问。

于 2018-11-26T11:39:41.427 回答