2017-07-18 92 views
0

我有大量的圖像是透明背景的白色,我想讓它們變成黑色,透明背景。使用GIMP或BIMP很簡單,但對於成千上萬的圖像,命令行似乎是更好的方法。 在ImageMagick的,我發現下面的兩個命令做我想做的:結合了將白色換成黑色的兩個命令爲一個

mogrify -alpha set -channel RGBA -background black -flatten +repage -negate *.png 
mogrify -alpha set -channel RGBA -transparent white *.png 

不過,我寧願不作兩遍。我一直在努力,他們結合了多種不同的方式:

mogrify -alpha set -channel RGBA -background black -flatten +repage -negate +repage -transparent white *.png

mogrify -alpha set -channel RGBA -background black -flatten +repage -negate -alpha set -channel RGBA -transparent white *.png

mogrify -alpha set -channel RGBA -background black -flatten +repage -negate +repage -alpha set -channel RGBA -transparent white *.png

以及一對夫婦同樣的想法其他排列。所有這些都會導致純粹的黑色圖像。我錯過了什麼?

是否有更簡單的方法來顛倒黑白或至少將白色轉換爲黑色,但保持alpha層不變?

mogrify -negate *.png 

轉換白色到透明透明白色,和

mogrify -fill black -opaque white *.png 

留下凌亂白邊。

+0

平臺/操作系統的想法可能會有所幫助,您的批處理文件標籤建議MS-DOS,OS/2或Windows_。 – Compo

+0

請提供幾個樣本輸入圖像和相應的輸出圖像 - 分別不能拼接成單個圖像。 –

+0

另外,您使用的操作系統是什麼,以及兩次通行證有什麼異議? –

回答

0

在ImageMagick的,你可以這樣做:

mogrify -format png -fill "rgba(0,0,0,1)" -opaque "rgba(255,255,255,1)" *.png 

如果你的白是不完全的白色,再加入-fuzz XX%

mogrify -format png -fuzz 5% -fill "rgba(0,0,0,1)" -opaque "rgba(255,255,255,1)" *.png 

的問題是,你需要在指定的alpha值的顏色,因爲你的圖像具有透明度。因此使用RGBA(R,G,B,A)值(注意a)或使用十六進制值與#RRGGBBAA

如果使用IM 7,然後mogrify與magick替換mogrify

下面是使用一個例子兌換。我在logo:image的其他地方創建了一張透明的白色圖片。

http://www.fmwconcepts.com/misc_tests/transparency_invert/logot.png

然後跑

convert logot.png -fill "rgba(0,0,0,1)" -opaque "rgba(255,255,255,1)" logot_invert.png 

,其中輸入是白色它返回的黑色和保持透明度不變。

http://www.fmwconcepts.com/misc_tests/transparency_invert/logot_invert.png

這是不是你想要的?

+0

即使使用模糊,它仍然做同樣的事情 - 填充黑色 - 不透明的白色。非黑色的部分是白色的,我猜測模糊百分比是按照顏色距離工作的。是不是有一些與gimp的gimp-invert一樣的東西? –

+0

我想我不明白這個問題。你能發佈一個示例圖像並解釋你想要發生什麼或者顯示使用GIMP的結果嗎? – fmw42

+0

續:以示例的形式查看我對上述帖子的編輯。這不是你想要的嗎?如果不是,請發佈您的輸入和GIMP輸出。 – fmw42

0

也許你想要的是ImageMagick中的以下內容。只是猜測,直到我可以看到你的實際輸入文件。

mogrify -format png -alpha off -negate -alpha on *.png 
0

在ImageMagick的,嘗試

mogrify -alpha off -negate -alpha on *.png 

這將關閉alpha通道反轉的黑白,然後接通原始alpha通道。

作爲一個測試,我做

convert aircon.png -alpha off -negate -alpha on aircon_fred.png 

enter image description here

你的兩個mogrify命令相對應的是

mogrify -background black -alpha background -alpha off -negate -transparent white *.png 

我有一個,因爲需要相當於取代你-flatten爲了使透明工作,重置組合方法。但是,mogrify不接受 - 結束。

作爲一個簡單的測試,我確實

convert aircon.png -background black -flatten -negate -transparent white aircon_fred2.png 

enter image description here

類似於第一另一種方法是隻使整個底層圖像的黑色和保持alpha通道。

mogrify -alpha off -fill black -opaque white -alpha on *.png 

再次作爲一個測試,我做

convert aircon.png -alpha off -fill black -opaque white -alpha on aircon_fred3.png 

enter image description here

然而,我的第一個方法應該提供更好的抗鋸齒功能,因爲它讓你原來的Alpha通道。你的方法將通過透明白色重新創建alpha,並且會有更多的階梯式鋸齒。

相關問題