使用带有“转换”功能的GraphicMagick gm调整图像大小会导致图像不一致

时间:2018-12-04 20:18:21

标签: imagemagick imagemagick-convert gm

我一直在尝试使用node.js gm模块调整图像大小。它适用于大多数图像。但是,当我尝试调整几张图像的大小时,背景颜色和图像中的文本是重叠的。我的要求是创建不同宽度的图像,而无需更改背景颜色。

 gm.command('convert')
                .resize(100)
                .gravity('Center')
                .background('none')
                .extent(100)
                    .toBuffer('JPG', function(err, buffer) {
                        if (err) {
                            next(err);
                        } else {
                            next(null, buffer, key);
                        }
                    });

下面是原始图片 enter image description here

调整尺寸后,图像如下

enter image description here

我确实尝试过删除背景,并尝试添加了透明('white'),但这没有给我预期的输出。但是,当我使用普通转换命令行工具调整大小时,它可以按预期工作。但是我的代码使用的是node-js gm模块,并部署在AWS Lambda中

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

JPG不支持透明度。尝试将输出保存到PNG或TIFF。您也可以尝试使用ImageMagick而不是GraphicsMagick。在命令行ImageMagick中,以下对我来说很好用:

enter image description here

convert image.png -resize 100 -background none -gravity center -extent 100 result.png


enter image description here