ImageMagick转换不生成正确的颜色

时间:2014-07-20 18:41:37

标签: imagemagick imagemagick-convert

当我运行此命令时:

convert -units PixelsPerCentimeter -type TrueColorMatte -channel RGBA -size 32x32 -alpha transparent xc:none -fill "hsla(60 ,83% ,64%)" -draw "circle 15,16 8,10" png32:"/test.png"

我正在使用填充参数中指定的颜色为hsla(215,79%,64%,1)而不是hsla(60, 83%, 64%, 1)的图像,我做错了吗?

我正在运行Mac OS X 10.9和ImageMagick 6.8.7-7 Q16 x86_64 2013-11-27

1 个答案:

答案 0 :(得分:1)

我已经尝试简化你的命令并在我的OSX Mavericks上重新运行它以查看它给出了什么。基本上,我发现我可以安全地删除一些东西并没有任何区别,直到我做到这一点仍然给出与你的例子相同的结果(我认为):

convert -size 32x32 xc:transparent -fill "hsla(60 ,83% ,64%,1)" -draw "circle 15,16 8,10" png32:a.png

然后我考虑了HSL各自的范围。 H的范围是0-360,然后我意识到你的H的60被解释为60%,因为有一点舍入误差,60 * 360/100 = 215这是什么您看到的是H值。所以,我将你的H值从60改为16(因为360的16%是你想要的60),它就是你想要的60。不确定它是否是一个错误,或者是什么,但我认为这就是正在发生的事情。

顺便说一下,我注意到弗雷德在this页面上注意,在指定HSL颜色时,不要将纯数字与百分比混合,所以也许他的软件也不指望我们......

我现在确定IM正在将您的H值解释为百分比,如果您输入50,则输出180(360%的50%),如果输入10,则输出36( 360%的10%。