我想使用rmagick / imagemagick更改图像的前景色。更具体一点:我想将black或white glyphicons-halflings图标(包含在twitter bootstrap中)转换为深蓝色的glyphicons-halflings图标。 (如果我可以指定十六进制或RGB颜色,那就太好了。)
我不知道这是否可能,但我点击了imagemagick文档,我发现的唯一的事情是convert --size 100x100 xc:skyblue glyphicons-halflings.png -composite foo.png
,问题是这只适用于你指定一个大小并且它正在改变前景色不是背景色。除此之外是天蓝色而不是深蓝色。
所以任何想知道如何将白色或黑色字形半身像转换成蓝色字形 - 半身像的人? (rmagick / ruby代码片段的加分点)
答案 0 :(得分:34)
快速回答:
convert glyphicons-halflings.png -alpha extract -background blue \
-alpha shape blue-glyphicons-halflings.png
注意:您可以使用任何命名颜色,RGB或RGBA等代替blue
(请参阅http://www.imagemagick.org/script/command-line-options.php#fill)。
<强>解释强>:
我们通过两个步骤“着色”图标:
有关详细信息,请阅读以下文档:
PS:在实现jQuery ThemeRoller重写https://github.com/jquery/download.jqueryui.com/issues/77
时,已经研究了上述解决方案答案 1 :(得分:5)
从http://www.imagemagick.org/Usage/color_basics/#replace,您可以使用以下命令将darkblue
中darkblue
的所有颜色替换为convert glyphicons-halflings.png -fill darkblue +opaque darkblue glyphicons-halflings.png
:
convert
如果您想在ruby中执行此操作,我建议您使用Minimagick gem https://github.com/minimagic/minimagick,它只需在命令行上调用{{1}}即可。根据我的经验,并非所有功能都已从命令行移植到RMagick
答案 2 :(得分:3)
除了sguha的回答 - 这里是Ruby版本(虽然是QuickMagick):
require 'quick_magick'
source = "images/source.png"
dest = "images/saved.png"
foreground = "0000ff" #hex code for your colour
QuickMagick.exec3("convert #{source} -fill \"##{foreground}\" +opaque \"##{foreground}\" #{dest}")