首页 > 解决方案 > 使用带有“转换”的 GraphicMagick 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);
                        }
                    });

下面是原图 在此处输入图像描述

调整大小后的图像如下

在此处输入图像描述

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

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

标签: imagemagickimagemagick-convertgm

解决方案


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

在此处输入图像描述

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


在此处输入图像描述


推荐阅读