ImageMagick转换未生成正确的颜色

ImageMagick转换未生成正确的颜色,imagemagick,imagemagick-convert,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)而不是fill参数中指定的hsla(60,83%,64%,1),我

运行此命令时:

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)
而不是fill参数中指定的
hsla(60,83%,64%,1)
,我做错了什么吗


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

我已尝试简化您的命令,并在我的OSX小牛上重新运行它,以查看有什么好处。基本上,我发现我可以安全地移除一些东西,这没有什么区别,直到我开始认真研究这个问题,它仍然给出了与您的示例相同的结果(我认为):

然后我考虑了
H
S
L
的范围。
H
的范围是0-360,然后我意识到
H
的60被解释为60%,因为有一点舍入误差,60*360/100=215,这就是您看到的
H
值。因此,我将您的
H
值从60更改为16(因为360中的16%是您想要的60),结果显示为您想要的60。不确定这是一个bug还是什么,但我认为这就是正在发生的事情

顺便说一句,我注意到,在第页,Fred在指定HSL颜色时,小心不要将纯数字与百分比混合,所以他的软件可能也不希望我们


我现在确定IM将你的
H
值解释为一个百分比,如果你输入50,你会得到180(360的50%),如果输入10,你会得到36(360的10%)。

有趣的发现,我猜我必须让我正在处理的代码将第一个数字转换为一个百分比,谢谢。如果你能看一看的话,我对ImageMagick还有另一个奇怪之处:我看了一下,并在那里发表了评论。
convert -size 32x32 xc:transparent -fill "hsla(60 ,83% ,64%,1)" -draw "circle 15,16 8,10" png32:a.png