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

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

Чёрнобелый 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; - это вроде бы лишнее.


Наверх

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