Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Grayscale (Черно-белое изображение)


sergey_61 ©   (2007-06-14 22:23:00) 

Доброго времени суток.
У TJPEGImage есть возможность отобразить рисунок в градациях срого. Надо сделать тоже самое для файла TBitmap. Делаю так:

var B: TBitmap;
    J: TJPEGImage;
begin
  B:=TBitmap.Create;
  B.LoadFromFile(<Name>);
  J:=TJPEGImage.Create;
  try
   J.Assign(B);
   J.Grayscale:=True;
   B.Assign(J);   <---- в этой строке выскакивает ошибка AV
  finally
   J.Free;
  end;
..............
  B.Free;
end;

В чем может быть проблема? или может есть другой способ преобразование TBitmap'a в черно-белый (градации серого) режим.
Заранее благодарен!


Jeer   (2007-06-15 15:55:00) [1]

Желательно так все же:

Стандаpт CCIR 601-1
Gray=(299*Red+587*Green+114*Blue)/1000.
Стандаpт CCIR 709:
Gray=(213*Red+715*Green+72*Blue/1000.
Стандаpт ITU:
Gray=(222*Red+707*Green+71*Blue)/1000.


{RASkov}   (2007-06-15 11:48:00) [2]

var B: TBitmap;
   J: TJPEGImage;
begin
 B:=TBitmap.Create;
 B.LoadFromFile(<Name>);
 J:=TJPEGImage.Create;
 try
  J.Assign(B);
  J.JPEGNeeded;
  J.Grayscale:=True;
  J.DIBNeeded;
  B.Assign(J);
 finally
  J.Free;
 end;
 Canvas.Draw(0, 0, B);
 B.Free;
end;


Dimaxx   (2007-06-15 10:49:00) [3]


>J:=TJPEGImage.Create;
>...
>B.Assign(J);   <---- в этой строке выскакивает ошибка AV

Еще бы она не выскакивала. Битмапу присваивается JPEG. Присваивай J.Bitmap или рисуй на битмапе из JPEG.


PZ   (2007-06-15 08:24:00) [4]

Посмотрите
http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=50225


SergeyIT   (2007-06-15 00:52:00) [5]

Вот кусочек из моей программы для ч/б картинок - пока никто не жаловался на AV (правда используется TImage и D5)

   jp := TJpegImage.Create;
   jp.LoadFromFile(fname);
   Img.Picture.Bitmap.Assign(jp);
   Img.Picture.Bitmap.PixelFormat := pf8bit;
   jp.Free;


Наверх

Титульная страница Поиск, карта сайта Написать письмо