16th
Дек

Как сделать Print Screen с экрана?

Posted by Chas under Пост-обзор

Реализовал в программе чтение с экрана – нажимается PrintScreen, вставляется в файл BMP через Paint, сохраняется, загружается в программу…
можно как-то это сделать проще или быстрее?

Как сделать BMP снимок с экрана?

Грузин:

var
  Desktopcanvas :TCanvas ;
 BitMap  :TBitMap;
begin
  DesktopCanvas:=TCanvas.Create;
  DesktopCanvas.Handle:=GetDC(Hwnd_Desktop);
  BitMap := TBitMap.Create;
  BitMap.Width := Screen.Width;
  BitMap.Height:=Screen.Height;
  Bitmap.Canvas.CopyRect(Bitmap.Canvas.ClipRect,
  DesktopCanvas, DesktopCanvas.ClipRect);
  bitmap.SaveToFile(‘c:\windows\screen.bmp’);
 image1.Picture.LoadFromFile(‘c:\windows\screen.bmp’);
end;

*****************************************************
Alar:

var
  ScreenDC:HDC;
  Canvas:TCanvas;
  Image1:TImage;
begin
  ScreenDC := GetDC(0);
  Canvas:=TCanvas.Create();
  Canvas.Handle:=ScreenDC;
  Image1 := TImage.Create(nil);
  Image1.Width := Screen.Width;
  Image1.Height := Screen.Height;
  Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height), Canvas, Rect(0, 0, Screen.Width, Screen.Height));
  ReleaseDC(0,ScreenDC);
  Canvas.Free;
end;
******************************************************
maxionans:

var
  DC : HDC;
  Bmp : TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    DC := GetDC( 0 );
    Bmp.SetSize( 100, 100 );
    BitBlt( Bmp.Canvas.Handle, 0, 0, 100, 100, DC, 0, 0, SRCCOPY );
    Bmp.SaveToFile( ‘c:\test.bmp’ );
    ReleaseDC( 0, DC );
  finally
    Bmp.Free;
  end;
end;

Как сделать JPG снимок с экрана?

var
  ScreenDC:HDC;
  Canvas:TCanvas;
  myjpg:  TJPEGImage;
  Image: TImage;
Begin
  Image:=TImage.Create(nil);
  myjpg:= TJPEGImage.Create;
  ScreenDC := GetDC(0);
  Canvas:=TCanvas.Create();
  Canvas.Handle:=ScreenDC;
  Image.Width := Screen.Width;
  Image.Height := Screen.Height;
  Image.Canvas.CopyRect(Rect(0, 0, Image.Width, Image.Height), Canvas, Rect(0, 0, Screen.Width, Screen.Height));
  ReleaseDC(0,ScreenDC);
  myjpg.Assign(Image.Picture.Bitmap);
  myjpg.compressionquality:=75; {устанавливаем параметры качества. Должно быть от 1 до 100. Если 100, то качество наилучшее, 1 наихудшее}
  myjpg.compress; {производим сжатие данных картинки}
  myjpg.SaveToFile(‘c:\prob.jpg’);
  Image.Free;
  Canvas.Free;
end;

тема на форуме

Похожие статьи

Теги: | | |