|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
прозрачная битмапа не распознает цвета 0xCC
Если битмапа прозрачная и есть цвета в значении 0хCC
То методы getPixel32 и getPixel будут выдавать ложные значения цвета (разные в зависимости от параметра А модели ARGB). Причем для других цветов (не 0хСС) эти методы не ошибаются (по крайней мере из тех значений, что я проверял), а если битмапа не прозрачная, то и 0хСС определяется верно. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Это, скорее всего, связано с тем, что прозрачность делится на 100 единиц, а не 255. Т.е. из той же серии, что значение _alpha после установки может не совпадать с исходным.
|
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Возможно, но метод getPixel32 как раз параметр A определяет безошибочно, а вот далее RGB идет с ошибкой.
add: вижу проблема встречалась уже http://livedocs.adobe.com/flash/8/ma...=00001956.html add2: развитие темы тут Параметры getColorBoundsRect add3: Все же от Мука есть небольшая польза. В его нетленке по AS3 нашел-таки объяснение этого глюка (думаю, что для AVM1 механизм глюка тот же). Вся беда в том, что флеш не запоминает исходные цвета для прозрачной битмапы! Т.е. A0 R0 G0 B0 при прозрачной битмапе не запоминаются, а происходит ВЫЧИСЛЕНИЕ нового цвета, где R0, G0 и B0 перемножаются на значение A0 и мы имеем в результате по сути НОВЫЙ цвет: R1 G1 и B1! Метод getPixel32 пытается сделать обратное преобразование, но, естественно, это в ряде случаев невозможно! Очень похоже на правду. Собственно это объясняет темы draw текстового поля искажает цвета и Параметры getColorBoundsRect Последний раз редактировалось chingachgoog; 26.01.2009 в 12:44. |
|
|||||
Регистрация: Dec 2008
Сообщений: 87
|
Об этом вроде есть в мануале к функции getPixel():
All pixels in a BitmapData object are stored as premultiplied color values. A premultiplied image pixel has the red, green, and blue color channel values already multiplied by the alpha data. For example, if the alpha value is 0, the values for the RGB channels are also 0, independent of their unmultiplied values. |
Часовой пояс GMT +4, время: 08:02. |
|
« Предыдущая тема | Следующая тема » |
|
|