2013-01-01 48 views
3

用Imagemagick旋轉或歪斜圖像後,發生旋轉的角落處有白色背景。例如:在Imagemagick中旋轉/去扭曲之後的自適應背景

convert image.png -rotate 10 out.png 

輸出:http://imgur.com/8bZQ6

有沒有一種方法,我可以以某種方式填補那些白色的牆角有一些紋理,或至少一種顏色與圖像融爲一體?裁剪不是一種選擇。

我已經找到了簡單的旋轉這個偉大的解決方案:

convert image.png -virtual-pixel Edge +distort SRT 10 out.png 

輸出:http://imgur.com/edMS0

但遺憾的是它不與-deskew命令工作...

是這樣,那麼任何人都知道如何以類似的方式填充這些角落-deskew(和-rotate)命令?重點是掩蓋圖像儘可能旋轉的事實。

+0

嗯,我看不到任何白色的角落...... –

+0

僅僅因爲瀏覽器窗口是白色的:) http://imgur.com/SqVM3 – HairyFotr

+0

請問您可以在黑色背景上渲染它嗎? :) –

回答

2

我會繼續前進,回答我的問題,但我仍然希望有一個更好的解決方案。

您可以設置-background顏色,該顏色適用於旋轉和傾斜校正。

下面是一個使用平均圖像顏色的解決方案:

convert image.png -background `convert image.png -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png 

輸出:http://imgur.com/YCqkC

和更好的解決方案,需要一些邊界像素:

convert image.png -background `convert image.png -resize 100x1! \(+clone -crop 1x1+0+0 \) +append -crop 2x1+99+0 -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png 

輸出:http://imgur.com/4wDPO

有一些bash腳本(在反引號內),所以這些解決方案只有unix。

1

試試這個:

convert image.png -background transparent -rotate 10 out.png 
+0

角落不能比這更隱形。爲什麼不被接受呢? – mmgp

+0

我想用盡可能最好的東西來填充空間,而不僅僅是透明。第二個鏈接是一個示例,但它不適用於-deskew命令(以及其他基本轉換)。對不起,我一直在編輯和添加內容,因爲我正在學習更多... – HairyFotr

+0

什麼是「儘可能最好」?我想這也許是你想要修復創建的背景。 – mmgp