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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.01.2009, 21:32
lamez вне форума Посмотреть профиль Отправить личное сообщение для lamez Найти все сообщения от lamez
  № 1  
Ответить с цитированием
lamez

Регистрация: Dec 2008
Сообщений: 4
По умолчанию Качество границ прозрачных областей bitmap data

Для того, чтобы попиксельно отредактировать(исказить в частности) картинку на экране записываю его содержимое в bitmap data. Затем удаляю один цвет(цвет, устанавливающий прозрачность) методом
threshold(f_bd,f_bd.rect,f_bd.rect.topLeft,"==",0xFFFF00FF,0x00FF00FF);
Появятся прозрачные области там, где был установлен цвет 0xFFFF00FF. Но на границе этого цвета с другим наблюдается их смешивание, поэтому на изображении останутся почти розовые(~<,~> 0xFFFF00FF) куски.

Вопрос 1: как избавиться от этих артефактов?
Вопрос 2: подскажите хороший программный способ извлечения значений четырех каналов цвета(по отдельности) из шестнадцатиричного значения типа 0xFFFF00FF.

Старый 31.01.2009, 02:30
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 2  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
1) никак


2)Извлечение компонентов цвета:
Код AS1/AS2:
//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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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