【问题标题】:Image resize using GraphicMagick gm with 'convert' is resulting in inconsistent image使用带有“转换”的 GraphicMagick gm 调整图像大小会导致图像不一致
【发布时间】:2018-12-05 05:13:25
【问题描述】:

我一直在尝试使用 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);
                        }
                    });

下面是原图

调整大小后如下图

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

谁能帮我解决这个问题。

【问题讨论】:

  • 传递给toBuffer()的回调函数中的next()是什么?
  • 还有一个上传函数调用,将图片上传到AWS s3 bucket

标签: imagemagick imagemagick-convert gm


【解决方案1】:

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

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


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2018-02-01
    相关资源
    最近更新 更多