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

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

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Усечение пикселей в BitmapData (срочно)

Здравствуйте. Прошу помощи в решении задачи по усечению (заданию прозрачности серым и чёрным пикселям). Прилаживаю картинку, есть динамическай битмап дата, которая образ человека окрашивает в различный цвет кроме градаций серого, не нужны все серые, чёрные и белые пиксели. Каким образром можно битмапу очистить от них. Написал вот это
Код AS3:
public function byteArrayToBitmapData(bytes:ByteArray, _canvas:BitmapData, _viewport:BitmapData):void{
 
 
			var calir:Boolean = false;
 
			// прошло ли 5 секунд
			if (new Date().time-_calibr<5000) {
				calir = true;
			}
 
			_canvas.lock();
 
			_viewport.lock();
			_canvas.setPixels(new Rectangle(0,0, as3kinect.IMG_WIDTH, as3kinect.IMG_HEIGHT), bytes);
 
 
			for ( var i=0;i<=as3kinect.IMG_WIDTH; i++) {
				for ( var j=0;j<=as3kinect.IMG_HEIGHT; j++) {
 
					var pixel:uint = _canvas.getPixel(i,j);
 
					if (calir) {
						_test[pixel] = true;
						// если идет время калибровки заполняем массив полученніми пикселями
					} else {
 
						if (setmas) {
							// если плотный массив пуст заполняем его уникальними цветами
							for (var col:String in _test) {
								_vect.push(uint(col));
 
								// в результате примерно 50 пикселей
								trace(col);
							}
 
							setmas = false;
 
						} else {
 
							var nodep:Boolean = true;
 
							// ищем пиксель в калибровочном массиве
							for each( var color_id:uint in _vect)
							{
								if (color_id==pixel) nodep = true;
							}
 
							if (nodep) {
								_viewport.setPixel32(i,j,0xFFFFFF00);
							} else {
								_viewport.setPixel32(i,j,0xFF0000);
							}
 
						}
 
					}/**/
 
				}
			}
 
			_viewport.unlock();
			_canvas.unlock();
 
		}
суть в том что на протяжении первых пяти секунд перебираеться попиксельно получаемая картинка и записуються полученные цвета в массив (первые пять секунд нужно быть не в кадре), потом они заполняют вектор и каждую итерацию сравнивается цвет пикселя в масиве, если на сцене появился человек его перекрашивает в красный и при проходе цикла при сравнии с полученным калибровочном массиве идет перерисовка. Но при такой схеме как только добавляешь цикл проверки на градацию серого флешка начинает жудко глючить. Подскажите как еще можно обесцветить серые чёрные и белые пиксели в альфу 0
Изображения
 
__________________
return this...

Создать новую тему   Часовой пояс GMT +4, время: 02:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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