css - 使用 nodejs 的 GraphicsMagick 未返回正确的图像

标签 css node.js image imagemagick

我正在使用 GraphicsMagick。

这是图片:

https://hbr.org/resources/images/article_assets/hbr/1405/F1405A_A.gif

我用来裁剪的:

enter image description here

我的代码在这里:

 gm(request(url), "myimage.jpeg")
    .resize(270, 270, '^')
    .gravity('Center')
    .quality(50)
    .crop(270,270)
    .compress('JPEG')
    .flatten()
    .stream(function (err, stdout, stderr) {
            if (err)
                console.log(err);
            else {
                //upload the file
                file.uploadFileFromGm(fileDetails, stdout, cb);
            }
        });

代码运行良好。

但是我得到了一个透明的图像,左边是空的。

结果我得到了下图:

enter image description here

为什么白色背景在透明部分不起作用?知道如何解决这个问题吗?

最佳答案

您的输入图像是 GIF 并且具有透明度。您的输出文件是不支持透明度的 JPEG,因此 GraphicsMagick 将透明像素渲染为黑色 - 默认背景颜色。

你有两个选择:

  1. 将您的图像存储为GIF,或可以表示透明度的PNG

  2. 将背景颜色更改为纯(非透明)白色并存储为 JPEG

您选择哪一个取决于您打算在哪里/如何使用图像,以及图像背后的背景是否必须在您要使用它的地方可见。

关于css - 使用 nodejs 的 GraphicsMagick 未返回正确的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715713/

相关文章:

asp.net-mvc - 如何在MVC4中将Byte[]显示为图片

javascript - ejs/html 找不到外部 js 文件( Node js)

javascript - 将数组序列化和反序列化到文件 - Node JS

javascript - javascript递归调用的问题

jquery 终端模板,我需要在右上角有一个持久的 DOM 元素

python - 使用 skimage 库调整图像大小而不拉伸(stretch)

python - 比较使用 ImageDataGenerator() 和 cv2.imread() 加载的数据

php - LESS CSS & Symfony - 动态更新配色方案

javascript - 检查输入长度不超过 10

html - 在不应该的时候 flex child 包裹; flex 包装 : nowrap not working