我们来看一个简单的 SVG 示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="shadow" x="-200%" y="-200%" width="500%" height="500%">
<feFlood flood-color="#000000" flood-opacity="0.5" result="floodColor"/>
<feGaussianBlur in="SourceAlpha" stdDeviation="3.0" result="blur"/>
<feOffset in="blur" dx="0.0" dy="0.0" result="offsetBlur"/>
<feComposite in="floodColor" in2="offsetBlur" operator="in" result="shadow"/>
<feBlend in="SourceGraphic" in2="shadow" mode="normal"/>
</filter>
</defs>
<rect
x="10"
y="10"
width="80"
height="80"
rx="10"
stroke-width="5"
stroke="#131414"
fill="#212124"
filter="url(#shadow)"
/>
</svg>
请注意,矩形的填充颜色是#212124
,如源中所定义:
如果我通过 Imagemagick 将此 SVG 转换为 PNG,convert test.svg test.png
我将获得:
请注意,填充颜色已更改为#1C1C21
。我已使用多个图像查看器/编辑器检查了颜色,以排除差异来自显示的可能性。
为什么 Imagemagick 会改变颜色,我该怎么做才能保持完全相同的颜色值?
我偶然发现了色彩管理Imagemagick 的 (我对 RGB 与 sRGB 主题感到困惑),并尝试添加-set colorspace RGB
。结果如下:
所以#222126
现在更接近了#212124
,但仍然没有精确的颜色匹配。
如果有关系的话,相关的软件版本是:
- ImageMagick 6.9.7-4
- Inkscape 0.92.3
答案1
给定以下 SVG 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="shadow" x="-200%" y="-200%" width="500%" height="500%">
<feFlood flood-color="#000000" flood-opacity="0.5" result="floodColor"/>
<feGaussianBlur in="SourceAlpha" stdDeviation="3.0" result="blur"/>
<feOffset in="blur" dx="0.0" dy="0.0" result="offsetBlur"/>
<feComposite in="floodColor" in2="offsetBlur" operator="in" result="shadow"/>
<feBlend in="SourceGraphic" in2="shadow" mode="normal"/>
</filter>
</defs>
<rect
x="10"
y="10"
width="80"
height="80"
rx="10"
stroke-width="5"
stroke="#131414"
fill="#212124"
filter="url(#shadow)"
/>
</svg>
以及以下命令:
convert test.svg test.png
我得到了以下图像:
如您所见,测量的颜色正好是#212124
。此外,图像正好是 100x100 像素:
$ file test.png
test.png: PNG image data, 100 x 100, 16-bit/color RGB, non-interlaced
我正在使用 ImageMagick 版本 6.9.11。