У меня проблема с imagecopyresampled для буферов, которые используют альфа-значения. по-видимому, алгоритм преумножает значения альфа-пикселей перед фильтрацией, это приводит к черным границам объектов arround.imagecopyresampled in php - premultiplied alpha issue
Шаги для воспроизведения:
принять изображение, которое полностью белый в части RGB и имеет (сглаженные !!) белый круг (идут с кругом, а не квадрата!) На черный фон в альфа-части (поэтому альфа-часть будет иметь в основном полностью белые и полностью черные пиксели, а также некоторые градиентные пиксели на границах круга из-за сглаживания - это означает, что входное изображение НЕ предварительно умножено - оно прямо/unmatted, потому что часть изображения RGB полностью белая).
scaledown изображение наполовину используя imagecopyresampled
составляют результат по совершенно белое изображение
Что я бы ожидать: полностью белое изображение
Что я получаю: серая граница вокруг контура круга
Я уверен, что это связано с предварительной мультипликацией альфы в рамках масштабированного алгоритма (алгоритм умножает значение альфа-пикселей с его значением rgb для вычисления нового значения rgb - таким образом, белые пиксели станут серыми)
Кто-нибудь знает workarround для этого?
мы просто пробовали это, но с воображением альфа-канал, кажется, полностью потерялся – Mat