Изменить: Мне не обязательно нужно решение этой проблемы - скорее, я бы хотел чтобы понять , почему это происходит. Я не понимаю, почему я должен получать такие странные результаты ниже ...
Хотя этот вопрос направлен на проблему, с которой я сталкиваюсь с приложением холста HTML5, я думаю, что проблема менее конкретна.
У меня есть приложение холста HTML5, которое позволяет наносить изображения на экран. Это 32-битные изображения PNG, поэтому я работаю с прозрачностью. Если я штампую очень прозрачное изображение в одном и том же месте много раз (примерно 100), я получаю абсолютно ужасный результат:
Цвет изображения, которое я использую в качестве штампа, - RGB (167 , 22, 22)
, а фон, на который я нажимаю, - RGB (255, 255, 255)
. Вот исходное изображение, если кому-то интересно:
Как вы можете заметить, изображение имеет чрезвычайно низкие уровни альфа-канала. Скорее всего, от 2/255 до 5/255
или около того. Я ожидал того, что если вы несколько раз примените штамп изображения к холсту достаточное количество раз, вы получите пиксели цвета RGBA (167, 22, 22, 255)
. К сожалению, я получаю смешанный набор цветов, включая некоторые очень странные области серого со значением RGB (155, 155, 155)
.
Я только что загрузил Excel и подключил уравнение для альфа-смешивания исходного кода ( ссылка в Википедии ), и я, кажется, схожусь к RGB (167, 22, 22)
после достаточного количества итераций. Мне, вероятно, не хватает чего-то фундаментального об операциях альфа-смешивания и о том, как холст HTML5 реализует композитинг с перекрытием исходного кода ... может ли кто-нибудь помочь мне исправить?
Спасибо!
Примечание: этот вопрос является похоже на мою проблему, но я не Я понимаю, почему я получаю опубликованные здесь результаты.