![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;