![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2008
Сообщений: 4
|
Для того, чтобы попиксельно отредактировать(исказить в частности) картинку на экране записываю его содержимое в bitmap data. Затем удаляю один цвет(цвет, устанавливающий прозрачность) методом
threshold(f_bd,f_bd.rect,f_bd.rect.topLeft,"==",0xFFFF00FF,0x00FF00FF); Появятся прозрачные области там, где был установлен цвет 0xFFFF00FF. Но на границе этого цвета с другим наблюдается их смешивание, поэтому на изображении останутся почти розовые(~<,~> 0xFFFF00FF) куски. Вопрос 1: как избавиться от этих артефактов? Вопрос 2: подскажите хороший программный способ извлечения значений четырех каналов цвета(по отдельности) из шестнадцатиричного значения типа 0xFFFF00FF. |
|
|||||
|
1) никак
2)Извлечение компонентов цвета: //24bit var color:uint = 0x336699; var r:uint = color >> 16; var g:uint = color >> 8 & 0xFF; var b:uint = color & 0xFF; //32bit var color:uint = 0xff336699; var a:uint = color >>> 24; var r:uint = color >>> 16 & 0xFF; var g:uint = color >>> 8 & 0xFF; var b:uint = color & 0xFF; Объединение компонентов цвета: //24bit var r:uint = 0x33; var g:uint = 0x66; var b:uint = 0x99; var color:uint = r << 16 | g << 8 | b; //32bit var a:uint = 0xff; var r:uint = 0x33; var g:uint = 0x66; var b:uint = 0x99; var color:uint = a << 24 | r << 16 | g << 8 | b; |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|