2014-12-03 2 views
0

Я сталкиваюсь с чем-то с графикой, которая, по-видимому, является ошибкой, но очень странной.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 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 

Однако это не только значение силы тяжести, что имеет что-то делать с этой ошибкой, потому что, если изменить настройки -5 transle, -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 

Похоже, что значение силы тяжести NorthWest вызывает ошибку по сравнению с конкретными значениями перевода.

Кто-нибудь сталкивался с этой ошибкой? Это ошибка или кто-нибудь знает, в чем причина?

+1

Вы не упомянули версию GraphicsMagick, но я проверил, что поведение проявляется в текущей версии развития, GraphicsMagick-1.4. –

ответ

0

Мне удалось наконец найти решение этой проблемы.

Это, по-видимому, ошибка графической магии, потому что это происходит только в том случае, если часть текста находится внутри изображения, но часть ее также находится вне координат X и Y. Так, например, если текст полностью вне изображения, он работает хорошо. Но если у меня есть текст, расположенный на северо-западе, и используйте позиционирование -5 -5, то он не работает с ошибкой.

Решение, которое я использовал, состояло в том, чтобы создать огромный «холст», который находится примерно в 2 раза больше, чем залог. Сначала я помещаю изображение в центр холста, а затем размещаю тексты над изображением. Поскольку теперь у нас огромный холст, тексты не падают частично за пределы изображения (потому что образ для GM в настоящее время является холстом), и GM может справиться с ними. После того, как я разместил все тексты, я обрезаю середину изображения, это то, что мне действительно нужно.

Пример команды я использовал, выглядит так:

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. –

0

Вы пытаетесь написать текст частично за пределами границ изображения. «SouthEast» с «translate -5, -5» также терпит неудачу. Единственная ошибка, похоже, что сообщение об ошибке несколько непостижимо.

EDIT: Исправлена ​​ошибка с моментальным снимком GraphicsMagick 1.4.020141214 (в этих обстоятельствах не появляется сообщение об ошибке).

+0

Текст может быть записан за пределами изображения. Проблема возникает только тогда, когда я пытаюсь записать ее таким образом, что ее часть видна, но другая часть находится снаружи. – Relevart

Смежные вопросы