Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.07.2008, 18:43
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 1  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
По умолчанию прозрачная битмапа не распознает цвета 0xCC

Если битмапа прозрачная и есть цвета в значении 0хCC

Код:
myBitmapData = new BitmapData(300, 200, true, 0x90cccccc);
То методы getPixel32 и getPixel будут выдавать ложные значения цвета (разные в зависимости от параметра А модели ARGB).
Причем для других цветов (не 0хСС) эти методы не ошибаются (по крайней мере из тех значений, что я проверял), а если битмапа не прозрачная, то и 0хСС определяется верно.

Старый 29.07.2008, 18:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Это, скорее всего, связано с тем, что прозрачность делится на 100 единиц, а не 255. Т.е. из той же серии, что значение _alpha после установки может не совпадать с исходным.

Старый 29.07.2008, 19:07
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 3  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Возможно, но метод 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.
Старый 24.03.2009, 18:31
Bred45 вне форума Посмотреть профиль Отправить личное сообщение для Bred45 Найти все сообщения от Bred45
  № 4  
Ответить с цитированием
Bred45

Регистрация: 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.