2012-08-28 210 views
15

我想使用rmagick/imagemagick更改圖像的前景色。更具體地說:我想將blackwhiteglyphicons-halflings圖標(包含在twitter引導程序中)轉換爲darkblue glyphicons-halflings圖標。 (這將是很好,如果我可以指定一個hexcolor或RGB顏色。)使用imagemagick更改圖像的顏色

我不知道這是甚至可能,但我點擊了imagemagick文檔,我發現唯一的東西是convert --size 100x100 xc:skyblue glyphicons-halflings.png -composite foo.png,問題是,這隻在指定尺寸時才起作用,並且它正在改變前景色而不是背景色。除此之外,天空並不暗藍。

那麼,誰有一個想法,我怎麼可以將白色或黑色的圖標 - 半身人變成藍色的圖標 - 半身人像? (Bonuspoints爲rmagick/Ruby代碼段)

+0

如果你不能提供它們,:-) –

+0

唯一bonuspoints你可以* *兌現SE被稱爲「賞金」 :-) –

+0

喜@邁克爾 - PERR,請參閱我的答案。它能解決你的問題嗎?請讓我知道。 ATT –

回答

33

快速回答

convert glyphicons-halflings.png -alpha extract -background blue \ 
-alpha shape blue-glyphicons-halflings.png 

blue-glyphicons-halflings.png

注:不是blue,你可以使用任何命名的顏色,或RGB或RGBA等(請參閱http://www.imagemagick.org/script/command-line-options.php#fill)。

說明

我們以 「着色」 在一個兩步驟過程中的圖標:

  • 提取從圖標的alpha通道; (注意:原始圖標的顏色無關緊要,我們正在提取其Alpha通道)
  • 將上述遮罩應用於您選擇的彩色背景上;

有關詳細信息,請閱讀以下文檔:

PS:將上述溶液進行了研究,同時實施的jQuery的ThemeRoller重寫https://github.com/jquery/download.jqueryui.com/issues/77

3

除了sguha的回答 - 這裏紅寶石版本(儘管是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}")