2014-01-07 94 views
1

我需要處理一些PDF到透明PNG的PDF文本只有彩色背景。將透明度設置爲不同的彩色背景imageMagick

pdfs有不同的彩色背景,有些是淺灰色的,有些是白色的等,但它們在整個pdf中都是一致的。

imagemagick中有沒有一種方法可以識別左上方的像素顏色,並在執行imagemagick命令時將獲取的顏色傳遞給命令-transparent "identifiedColor"

謝謝!

+1

是您的文本黑色或它是彩色的? – Andrea

+1

如果你的文字總是黑色的,那麼Andrea的[在其他地方回答](http://stackoverflow.com/questions/15426968/using-imagemagick-to-remove-all-color-except-black-in-an-i-image/20976373 #20976373)應該工作。如果文本的顏色不同,我試圖看看你是否可以使用像'-transparent -fx'p {0,0}'-fuzz 1%'這樣的東西,但是我無法使它工作。有誰知道使用'-fx'來完成這個的方法嗎? –

+0

@Andrea,是的文字是混合的顏色,有些是黑色的,有些是有色的。 – codin

回答

3

解決方案1:磨砂floodfill

convert input.pdf -fill none -fuzz 10% -draw "matte 0,0 floodfill" output.png 

也許你將不得不調整短絨率

更多的細節在這裏:http://www.imagemagick.org/Usage/draw/#matte

解決方案2:顏色更換

我不能找到一種方法,做一個簡單的命令,但是這兩個命令應該工作:

  1. 白色更換背景顏色(由像素採用[0,0]):

    convert input.pdf -fill white -draw "color 0,0 replace" temp.png 
    
  2. 化妝白色像素透明:

    convert temp.png -transparent white output.png 
    

更多的細節在這裏http://www.imagemagick.org/Usage/draw/#color

測試用的ImageMagick 6.6.0-1在Windows

+0

我認爲第二個解決方案會做。我事先玩過'fuzz',但它不適用於我的情況。 – codin

+0

解決方案2可以像這樣完成一個命令:'convert input.pdf -fill none -draw「color 0,0 replace」output.png' – Caleb