gpt4 book ai didi

node.js - 如何控制graphicsmagick(用于Node)中的输出位深度?

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:50 25 4
gpt4 key购买 nike

所以我有两个 PNG 图像,都是不透明的 24bpp。一张图像包含彩虹,另一张图像包含一行文本: enter image description here

我对他们俩做了同样的事情:

var gm = require('gm').subClass({imageMagick: true})
gm("./sources/source.png").bitdepth(24).write("test.png", function(){
console.log("test.png")
});
gm("./sources/source2.png").bitdepth(24).write("test2.png", function(){
console.log("test2.png")
});

其中gmthis

我将两者都设置为 24bpp explicitly

结果我有两个具有不同位深度的图像:

enter image description here

在某些情况下,我还有 32bpp 图像。

如何让它只创建 24bpp 图像(如果需要,丢弃 alpha channel )。另外,我不想创建 jpg。

<小时/>

感谢@mark-setchell ,我可以强制位深度。我在 Node 中是这样做的:

gm("./sources/source.png")
.out("-define")
.out("png:color-type=2")
.write("test.png", function(){
console.log("test.png")
});

out() 是一种未记录的方法,但它基本上可以帮助您向命令行添加自定义参数。请注意

    .out("-define png:color-type=2")

不起作用,只有在单独的 .out() 调用中传递每个参数时才起作用

.bitdepth(24) 似乎根本不影响输出,可能因为我做了 .subClass({imageMagick: true}) 上面。

最佳答案

我的建议是尝试使用-define来设置变量png:color-type=2。当您解决并与社区分享时,其完成如下:

gm("./sources/source.png")
.out("-define")
.out("png:color-type=2")
.write("test.png", function(){
console.log("test.png")
});

关于node.js - 如何控制graphicsmagick(用于Node)中的输出位深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com