2014-12-03 62 views
0

我遇到了一個graphicsmagick,看起來像一個bug,但卻非常奇怪。GraphicsMagick在使用NorthWest重力時失敗

當我執行下面的命令,它工作正常:

gm convert /etc/files/background/1.jpg -draw "gravity 'West';fill '#FFFFFF';font 'Courier';font-size 24;rotate 180;translate 5,5 text 0, 0 'preview_title'" /vagrant/output.jpg 

但是,如果我改變重力向西北時,出現了一個錯誤:「GM轉換:不合格繪圖圖元定義(文本) [無此文件或目錄]。'

gm convert /etc/files/background/1.jpg -draw "gravity 'NorthWest';fill '#FFFFFF';font 'Courier';font-size 24;rotate 180;translate 5,5 text 0, 0 'preview_title'" /vagrant/output.jpg 

但是它不僅是有事情做與此錯誤,因爲如果我改變transle設定爲-5,重力值-5從5,5則再次合作罰款:

gm convert /etc/files/background/1.jpg -draw "gravity 'NorthWest';fill '#FFFFFF';font 'Courier';font-size 24;rotate 180;translate -5,-5 text 0, 0 'preview_title'" /vagrant/output.jpg 

因此,看起來西北重力值與特定翻譯值相比會導致錯誤。

有沒有人遇到這個錯誤?這是一個錯誤還是有人知道它的原因是什麼?

+1

你沒有提到你的GraphicsMagick工具的版本,但我已經驗證該行爲是由當前的開發版本,GraphicsMagick工具 - 1.4展出。 – 2014-12-04 23:26:44

回答

0

我終於弄清楚了這個問題的解決方案。

這顯然是一個圖形Magick錯誤,因爲它只發生在部分文本位於圖像內部,但其一部分位於X和Y座標外部的情況下。例如,如果文本完全在圖像之外,則效果很好。但是如果我在西北地區定位了一個文本,並使用-5 -5定位,那麼它會因錯誤而失敗。

我使用的解決方案是創建一個巨大的「畫布」,大約是行李的兩倍。首先,我將圖像放在畫布中央,然後將文字放在圖像上。因爲現在我們有一個巨大的畫布,文字不會部分落在圖像之外(因爲通用的圖像目前是畫布),通用汽車可以處理它們。在定位所有文本後,我裁剪出圖像的中間部分,這是我真正需要的部分。

一個例子命令我使用看起來像這樣:

gm convert -background white -extent 5000x5000-1000-1000 /etc/files/background/1.jpg -draw "gravity 'NorthWest';fill '#000000';font 'Courier';font-size 22;rotate 0;translate 970,1005 text 0, 0 'prlasdfsdfv'" -crop 1427x1992+1000+1000 /vagrant/output.jpg 
+1

此問題已在GraphicsMagick快照1.4.020141214中解決。 – 2014-12-15 13:08:13

0

您正在嘗試在圖像邊界之外部分地寫入文本。 「翻譯-5,-5」的「SouthEast」也失敗。唯一的錯誤似乎是錯誤信息有些難以理解。

編輯:在GraphicsMagick快照1.4.020141214中修復了這個錯誤(在這些情況下沒有發出錯誤消息)。

+0

文字可以寫在圖像的外部。只有當我試圖以一部分可見的方式編寫它時,問題纔會出現,但其他部分在外面。 – Relevart 2014-12-08 09:07:18