Прозрачность не более прозрачная, если непрозрачность меньше 1

У меня 32-битный PNG, представляющий синий квадрат в середине прозрачного квадрата. Ниже я отобразил этот синий квадрат с 3 разными значениями непрозрачности:

Слева направо, непрозрачность составляет 1, 0,5 и 0,1

Слева направо непрозрачность составляет 1, 0,5 и 0,1, и, как вы можете видеть (если не можете, просто доверьтесь своей пипетке в Photoshop), область вокруг синего квадрата прозрачна только на левом изображении.

Вот то же изображение со значениями цвета:

То же изображение со значениями цвета

Я знаю, что это еле заметно, но хотелось бы знать, в чем причина. Кроме того, с некоторыми изображениями и фоном контраст более заметен.

Спасибо!

РЕДАКТИРОВАТЬ: Вот мое решение VS для тех, кто хочет попробовать его дома: http://www.mediafire.com/?gt704e62d53z7ae


person Rodolphe    schedule 14.02.2012    source источник
comment
Я могу подтвердить, что тоже наблюдаю такое поведение. Я тестировал как 32-битные, так и 8-битные изображения PNG, без разницы в выводе. Пахнет дефектом визуализации.   -  person Sander    schedule 14.02.2012
comment
Это тоже мое предположение. Вы придумали обходной путь?   -  person Rodolphe    schedule 15.02.2012
comment
Нет, я не нашел обходного пути.   -  person Sander    schedule 15.02.2012
comment
Я предполагаю, что Silverlight выполняет предварительно умноженную альфа-версию смешивание, как и в XNA. Но это всего лишь предположение.   -  person Dragos Calin    schedule 16.02.2012
comment
Что вы ожидали, когда непрозрачность установлена ​​на 10%? Мне кажется, что цвет # 514846 правильный.   -  person Chui Tey    schedule 17.02.2012
comment
Когда некоторые пиксели прозрачны, я ожидаю, что они останутся прозрачными независимо от непрозрачности. Прозрачный прозрачный. Нет разных оттенков прозрачности.   -  person Rodolphe    schedule 17.02.2012
comment
Dragos Calin, спасибо за ссылку. Это мне не помогает, но, по крайней мере, я думаю, что понимаю причину своей проблемы.   -  person Rodolphe    schedule 17.02.2012


Ответы (2)


Это не сглаживание и, скорее всего, не Предварительно умноженное альфа-смешение, поскольку его цель - делать то, что вы делаете.

Это больше похоже на проблему с рендерингом.

Вы пробовали это в нескольких браузерах? На другой машине с другим графическим процессором? На той же машине с обновленными драйверами?

person one.beat.consumer    schedule 22.02.2012
comment
Тот же эффект с Chrome 17, Firefox 10 и IE 9 ... И я пробовал его в браузере и вне браузера на 4 разных компьютерах, но все они работали под Windows 7 ... Но я не проверял графический процессор или обновлены ли драйверы. Если вы хотите попробовать, вот источник: mediafire.com/?gt704e62d53z7ae - person Rodolphe; 22.02.2012
comment
К сожалению, политика моего работодателя в отношении WebSense носит нацистский характер, поэтому я не могу получить исходный текст. Тот факт, что это происходит во всех браузерах, заставляет меня по-прежнему думать о причуде драйвера графического процессора Windows 7. - person one.beat.consumer; 23.02.2012
comment
Жаль, что у меня под рукой нет другой версии Windows ... В любом случае, я с радостью награждаю вас наградой. ; о) - person Rodolphe; 23.02.2012

Это может быть сглаживание, вызывающее смешение прозрачной «рамки» и полупрозрачного «синего квадрата», вызывающее странные промежуточные цветовые блики, которые вы видите.

person Fraser    schedule 22.02.2012
comment
Я думаю, что ответ Драгоса о предварительно умноженном альфа-смешивании правильный. Но все равно спасибо. - person Rodolphe; 22.02.2012