如何在graphicsmagick中控制输出位深度(对于Node)?

时间:2015-08-17 11:17:23

标签: node.js imagemagick graphicsmagick iojs

所以我有两个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通道)。 另外,我不想创建jpgs。

感谢@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})

1 个答案:

答案 0 :(得分:1)

我的建议是尝试使用<Grid> <Grid.Resources> <Style x:Key="Edit"/> <Style TargetType="{x:Type RadioButton}" BasedOn="{StaticResource Edit}" x:Key="ToggleStyle"/> </Grid.Resources> <RadioButton Style="{StaticResource ToggleStyle}"/> </Grid> 设置变量USE AdventureWorks2012 GO SELECT * FROM [HumanResources].[vEmployee] GO 。当您解决问题并与社区分享时,请按以下方式进行:

-define