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

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

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

Регистрация: Sep 2005
Адрес: Snezhinsk, Russia
Сообщений: 367
Отправить сообщение для firsoff с помощью ICQ Отправить сообщение для firsoff с помощью Skype™
По умолчанию RGB -> grayscale

есть цветовое значение A = 0xFF00FF допустим, как его перевести в эквивалент черно-белого? ( как фотошоп переводит цветное изображение в черно белое?

С уважением.

Старый 31.10.2009, 13:43
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
http://books.google.com/books?id=Qli...age&q=&f=false

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Скорее уж тогда http://www.delphisources.ru/pages/fa...grayscale.html
__________________
Reality.getBounds(this);

Старый 22.09.2010, 14:19
AntonSurkont вне форума Посмотреть профиль Отправить личное сообщение для AntonSurkont Найти все сообщения от AntonSurkont
  № 4  
Ответить с цитированием
AntonSurkont
 
Аватар для AntonSurkont

Регистрация: Dec 2009
Сообщений: 122
Здравствуйте уважаемые программисты.
Я решил не создавать лишний раз тему, так как мой вопрос сильно связан с этой темой я решил написать сюда.
Мне нужно цветной bitmapData сделать черно-белым.
Книга на которую ссылается udaaff недоступна.
Я воспользовался расчетами которые дал Wolsh, но у меня все равно что-то не получается
Код AS3:
private function coloredOff():void {
  bmData2.lock();
  var color:uint;
  var red:uint;
  var green:uint;
  var blue:uint;
  for (var i:int=0;i<bmData2.height;i++) {
    for (var j:int=0;j<bmData2.width;j++) {
      color=bmData1.getPixel32(j,i);
      //if (j<3) { trace("j="+j+" i="+i); }
      if ((i==1)&&(j==1)) { trace(color.toString(16)); };
      red=(color>>16)&0xFF;
      green=(color>>8)&0xFF;
      blue=color&0xFF;
      if ((i==1)&&(j==1)) { trace(red); };
      red=Math.round(red*0.56);
      if ((i==1)&&(j==1)) { trace(red); };
      green=Math.round(green*0.33);
      blue=Math.round(blue*0.11);
      color&=0xFF00FFFF;
      color|=(red<<16);
      color&=0xFFFF00FF;
      color|=(green<<8);
      color&=0xFFFFFF00;
      color|=blue;
      bmData2.setPixel32(j,i,color);
      if ((i==1)&&(j==1)) { trace(color.toString(16)); };
    }
  }
  bmData2.unlock();
}
Помогите плиз

Старый 22.09.2010, 14:30
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 5  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
внимательно изучите класс ColorMatrixFilter, он все это сделает гораздо быстрее.
Ну или можно шейдер написать на PixelBender'e

Старый 22.09.2010, 14:32
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
RGB поставить в соотношение 0.9 0.6 0.3

Старый 22.09.2010, 14:36
AntonSurkont вне форума Посмотреть профиль Отправить личное сообщение для AntonSurkont Найти все сообщения от AntonSurkont
  № 7  
Ответить с цитированием
AntonSurkont
 
Аватар для AntonSurkont

Регистрация: Dec 2009
Сообщений: 122
Извиняюсь я не внимательно повторил формулу. Только сейчас случайно заметил.
Так вот все работает!
Код AS3:
private function coloredOff():void {
  bmData2.lock();
  var color:uint;
  var red:uint;
  var green:uint;
  var blue:uint;
  var blackWhite:uint;
  for (var i:int=0;i<bmData2.height;i++) {
    for (var j:int=0;j<bmData2.width;j++) {
      color=bmData1.getPixel32(j,i);
      red=(color>>16)&0xFF;
      green=(color>>8)&0xFF;
      blue=color&0xFF;
      blackWhite=Math.round(red*0.56+green*0.33+blue*0.11);
      color&=0xFF00FFFF;
      color|=(blackWhite<<16);
      color&=0xFFFF00FF;
      color|=(blackWhite<<8);
      color&=0xFFFFFF00;
      color|=blackWhite;
      bmData2.setPixel32(j,i,color);
    }
  }
  bmData2.unlock();
}
Добавлено через 58 секунд
i.o. и Psycho Tiger спасибо что откликнулись

Старый 22.09.2010, 14:48
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 8  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Почему нельзя сделать все проще?
Код AS3:
var bmp:BitmapData = new BitmapData(1600, 1200);
var b:Bitmap = new Bitmap(bmp);
this.addChild(b);
var arr:Array = [
0.3, 0.6, 0.1, 0.0, 0.0,
0.3, 0.6, 0.1, 0.0, 0.0,
0.3, 0.6, 0.1, 0.0, 0.0,
0.0, 0.0, 0.0, 1.0, 0.0
];
var cmf:ColorMatrixFilter = new ColorMatrixFilter(arr);
bmp.applyFilter(new BMP(1600, 1200), new Rectangle(0, 0, bmp.width,
bmp.height), new Point(0, 0), cmf);
оригинальную статью читайте здесь

Старый 22.09.2010, 14:58
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 9  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
А чтобы не париться с матрицами, можно использовать класс ColorMatrix от Гранта Скиннера, и прибудет с тобой сила, Люк
__________________
...вселенская грусть

Старый 22.09.2010, 22:24
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 10  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
RGB поставить в соотношение 0.9 0.6 0.3
Яркость не изменится, только если сумма констант будет равна 1.

И небольшое уточнение - константы в соответствии со стандартом HDTV: red=0.2127, green = 0.7152, blue = 0.0722.

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

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

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


 


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


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