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

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

Снимок экрана [D6, Win2k]


Nic2 ©   (2004-05-20 22:06:00) 

Мастера подскажите, как уменьшить количество цетов в выходном файле, сейчас копирует 24b.

Пишу:
----------------------------------------------
var
DC: HDC;
Canva: TCanvas;
B: TBitmap;
jpg: TJPEGImage;
begin
Canva := TCanvas.Create;
JPG := TJPEGImage.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
 Canva.Handle := DC;
 with Screen do
  begin
   B.Width := Width;
   B.Height := Height;
   B.Canvas.CopyRect(Rect(0, 0, Width, Height), Canva, Rect(0, 0, Width, Height));
  end;
  if not b.Empty then
   begin
    jpg.Performance:=jpBestspeed;
    jpg.PixelFormat:=jf8Bit;
    jpg.CompressionQuality:=50;
    jpg.Compress;
    jpg.Assign(b);
    jpg.SaveToFile('c:\01.jpg');
   end;
finally
 b.Free;
 canva.Free;
 jpg.Free;
end;
---------------------------------------------


MicroMozg   (2004-05-21 22:00:00) [1]

Попробуй так:

 Bitmap := TBitmap.Create;
 Bitmap.Width := Screen.Width;
 Bitmap.Height := Screen.Height;
 Bitmap.PixelFormat := pf1bit; {или pf2/4/8/16/24/32bit}
 DC := GetDC(0);
 BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height,
   DC, 0, 0,SRCCOPY);
 ReleaseDC(0, DC);
 Bitmap.SaveToFile('D:\Test.bmp');
 Bitmap.Free;

У меня вроде всё работает.


Наверх

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