2015-06-30 3 views
2

Обновление:

Из-за предложения от paddy мне пришло в голову, что сглаживание отлично выглядит на одной из моих машин, но не на другом.Как избежать этого обесцвечивания ImageMagick сглаживания?

Я пытаюсь создать 24x24 png, который имеет заполненную форму с прозрачным фоном. Вот команда, я работаю с:

convert -size 24x24 xc:none \ 
     -fill red \ 
     -draw "path 'M 0,0 L 24,0 A 24,24 0 0,0 0,24 Z' " result.png 

«хс: _____» определяет цвет фона. (Может быть, это то, где я ошибаюсь?)

Выход дает мне правильную форму, но граница между формой и прозрачной областью (то есть сглаживание края между цветом и прозрачностью) заметно потемнела :

ImageMagick expected vs. result

анти-сглаживание показано справа, что я хочу от ImageMagick. Вот что я получаю для различных значений хс:

Different ImageMagick xc values

Как вы можете видеть, сглаживание смеси хорошо с твердым цветом, но не с прозрачностью. В руководстве ImageMagick есть a section on anti-aliasing и проблемы, которые он может вызвать, но при чтении его ни один из примеров не охватывает прозрачность. Есть идеи?

+2

Какую версию вы используете? 'convert -version'. Я угадываю ваши скриншоты, которые вы используете в Mac OS X. У меня также есть ImageMagick на Mac OS X, установленный с [Brew] (http://brew.sh). Моя версия сообщается как «ImageMagick 6.9.0-10 Q16 x86_64 2015-03-08', и прозрачное сглаживание выглядит отлично. – paddy

+0

Я бегу конвертирую версию 6.9.1-2 Q16 i686 2015-04-22 на Crunchbang 11 Waldorf. Тем не менее, я также установил его на свою машину OSX (6.9.1-6 Q16 x86_64 2015-06-22), и вы абсолютно правы, это выглядит хорошо. Итак, это определенно что-то не так с моей коробкой Crunchbang/установкой. Спасибо за помощь. –

ответ

0

Обновление до более поздней версии ImageMagick/обращенного (6.9. 1-6 Q16 i686 2015-06-30) исправил проблему для меня. (Thanks, paddy)

0

Вы пробовали установить -background Red -alpha Background? Я подозреваю, что цвет фона по умолчанию черный, что затем размывается красным цветом на прозрачном фоне.

+0

это * - * какой он выглядит, не правда ли. Я попробовал это: 'convert -size 24x24 xc: -background red -alpha background -fill blue -draw" path 'M 0,0 L 24,0 A 24,24 0 0,0 0,24 Z' "triangle_curved.png 'но он удалил прозрачность и дал ему белый фон. –

0

Попробуйте xc:transparent над xc:none

convert -size 24x24 xc:transparent \ 
    -fill red \ 
    -draw "path 'M 0,0 L 24,0 A 24,24 0 0,0 0,24 Z' " result.png 

Как @paddy отметил в комментариях, этот вопрос был решен в более поздних версиях IM

+0

xc: transparent не исправляет это для меня с этой версией IM. * shrug * –

+1

@DustinPaluch Ah! это не проблема, о которой я думаю, но с делегатами SVG между системами. Существует способ обеспечения векторной графики для использования MVG через библиотеку RSVG. Я обновлю свой ответ, если я могу откопать документы. – emcconville