Я пытаюсь удалить альфа-канал (прозрачность) PNG-файла и заменить его на белом фоне в PHP.PHP: преобразовать альфа-канал на белый фон с ImageMagick
Использование ImageMagick Я пробовал несколько функций без везения. Это функция, которая не работает:
$iMagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_DEACTIVATE);
$iMagick->setImageBackgroundColor('#FFFFFF');
$iMagick = $iMagick->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
Также setBackgroundColor('#FFFFFF')
вместо setImageBackgroundColor('#FFFFFF')
не помогло. То же самое касается замены '#FFFFFF'
на 'white'
в этих двух функциях.
Использование ImageMagick 3.4.0RC6 (дата выпуска: 2016-11-29), скомпилированное с ImageMagick 6.8.9-9 Q16 x86_64 2016-03-14. Текущие версии (Ubuntu 16.04).
Любые идеи? Заранее спасибо
ninsky
Я пробовал это и проверил с идентификатором Imagick -verbose. Got: «Глубина канала: красный: 8 бит, зеленый: 8 бит, синий: 8 бит, альфа: 1 бит. Прозрачный цвет: нет». Поэтому я думаю, что это сделал трюк. Благодаря! – ninsky
Не могли бы вы объяснить, как это работает? – peter
@peter Представьте стопку изображений, каждая из которых содержит в себе несколько прозрачных битов (прозрачные области). Во-первых, положите на стол белый лист бумаги, то есть «BackgroundColor (белый)», теперь лежат все остальные изображения с прозрачными областями сверху. Эффект nett - вы увидите белый цвет, все они прозрачны. –