![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чёрнобелый Jpeg [D6, D7, Win2k, WinXP]
SH © (2004-02-05 11:03:00)Получаю DC Рабочего Стола, кидаю всё это в BitMap, потом следующее:
var
jpg:TJpreg;
begin
...
jpg.GrayScale:=True;
Jpg.Compress;
Jpg.SaveToFile()
...
Короче, беру в BMP и конверчу в Jpeg, затем сохраняю.
Трабл. Когда GrayScale в True, то на выходе получаю файлы нулевого размера, иначе - всё путём и в цвете.
dmk (2004-02-06 22:36:00) [1]Так сделай серый RGB. Jpeg его намного мощнее сожмет, т.к.
RGB значения будут одинковы =) И хорош мучиться.
SH (2004-02-06 14:58:00) [2]Привожу процедуру с ошибкой полностью:
procedure TFSPy.CopyScreen;
var
DC:HDC;
bMap:TBitMap;
Jpg:TJpegImage;
begin
bMap:=TBitMap.Create;
Jpg:=TJpegImage.Create;
bMap.Height:=Screen.Height;
bMap.Width:=Screen.Width;
DC:=GetDC(0); //Дескpиптоp экpана
BitBlt(bMap.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
Jpg.Assign(bMap);
{устанавливаем степень сжатия (качество) 1..100}
jpg.CompressionQuality:=TrackBar1.Position;
{если установлен флаг " Оттенки серого" , то пусть картинка будет серой:)}
// Сие не пашет
jpg.Grayscale:=True;
{Упаковываем графику}
jpg.Compress;
Jpg.SaveToFile('c:\file'+IntToStr(Count)+'.jpg');
ReleaseDC(0,DC);
bMap.Free;
Jpg.Free;
end;
Mantic0re (2004-02-06 09:51:00) [3]>dmk
>> "Jpeg не поддерживает Indexed или Palette цвет"
Да.
Но оттенки серого(grayscale) поддерживает, формат не использует его как индексы в палитре - для него это просто уровни яркости, которые он и кодирует.
dmk (2004-02-06 00:58:00) [4]Jpeg не поддерживает Indexed или Palette цвет
Fenik (2004-02-05 17:41:00) [5]jpg: TJPEGImage; (?)
...
Jpg.Compress; - это вроде бы лишнее.