2014-01-07 133 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