ImageCopyresAmpled в PHP - преподобный альфа-выпуск
-
12-11-2019 - |
Вопрос
У меня есть проблема с ImageCopyresAmpled для буферов, которые используют альфа-значения. Судя по-видимому, алгоритм предоставления пикселей альфа-значений перед фильтром, это приводит к черным границам церковных объектов.
Шаги для воспроизведения:
- .
-
сделать изображение, которое полностью бело в роль RGB и имеет (сглаживание !!) белый круг (идет с кругом, не с квадратом!) на черном фоне в альфа-части (так Альфа-часть будет иметь в основном совершенно белые и совершенно черные пиксели, а также некоторые градиентные пиксели на границах круга из-за сглаживания - это означает, что входное изображение не преподавало - это прямое / неумолимое, потому что RGB часть изображения полностью белый).
-
scaledown изображение вдвое с помощью imageCopyresAmpled
-
составляют результат на совершенно белом изображении
Что бы я ожидал: полностью белое изображение
Что я получаю: сероватая граница пограничный контур круг
Я уверен, что это связано с преподобным альфа в пределах алгоритма CEALEDOWN (алгоритм умножает пиксели альфа-значению с его значением RGB для расчета нового значения RGB - таким образом, при этом белые пиксели станут серыми)
Кто-нибудь знает, что Workaround для этого?
Решение
Я бы предложил попробовать изображение Magick для PHP.
http://www.php.net/manual/en/imagick.resizeimage.php
http://www.php.net/manual/en/imagick.ScoreImage.php
В моем опыте все хлопоты относительно визуализации в PHP просто уходят.