Тема: RGB -> grayscale
Показать сообщение отдельно
Старый 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();
}
Помогите плиз