Еще раз спасибо за ваш очень вовлеченный ответ. Я действительно сталкивался с предварительно умноженными альфа-значениями, когда пытался исследовать эту проблему, но в то время ничего об этом не думал. У меня еще не было времени, чтобы попытаться поиграть с изображением штампа, чтобы отменить предварительное умножение, но я думаю, что на основании полученных вами результатов он действительно является виновником. Я очень ценю ваше время здесь - это бы свело меня с ума на долгое время. :)

тировать: Мне не обязательно нужно решение этой проблемы - скорее, я бы хотел понятьПочему это происходит. Я не понимаю, почему я должен получить странные результаты ниже ...

Хотя этот вопрос направлен на решение проблемы, возникшей у меня с приложением HTML5 canvas, я думаю, что проблема менее специфична.

У меня есть приложение HTML5 Canvas, которое позволяет вам печатать изображения на экране. Эти изображения являются 32-битными PNG, поэтому я работаю с прозрачностью. Если я много раз штампую очень прозрачное изображение в одном и том же месте (примерно 100), я получаю совершенно ужасный результат:

Цвет изображения, которое я использую в качестве штампа:RGB(167, 22, 22) и фон, на котором я проштампую,RGB(255, 255, 255), Вот исходное изображение, если кому-то интересно:

Как вы можете сказать, изображение имеет очень низкие альфа-уровни. Скорее всего о2/255 to 5/255 или так. Что бы яожидать может случиться так, что если вы несколько раз примените штамп изображения к холсту, вы получите цветные пикселиRGBA(167, 22, 22, 255), К сожалению, я получаю смешанную сумку цветов, включая некоторые очень странные области серого со значениемRGB(155, 155, 155).

Я только что загрузил Excel и подключил уравнение для исходного альфа-смешивания (Ссылка на Википедию) и я, кажется, сходится кRGB(167, 22, 22) после достаточного количества итераций. Вероятно, я упускаю что-то фундаментальное в операциях альфа-смешивания и в том, как на холсте HTML5 реализовано наложение исходного кода ... Кто-нибудь может мне помочь?

Спасибо!

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

Ответы на вопрос(1)

Ваш ответ на вопрос