![]()
Представляю Вам показательный пример, как в среде программирования Дельфи делается скриншот самого экрана и сохраняется данное изображение…
Аналогичный пример, с использованием уже компонента под названием Image, можно сделать скриншот и сберечь изображение в bmp- формате.
Пример кода:
var
bmp : TBitmap;
begin
bmp := TBitmap.Create;
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0,0, Screen.Width, Screen.Height, GetDC(0), 0,0,SRCCOPY);
Image.Width := Screen.Width;
Image.Height := Screen.Height;
Image.Picture.Assign(bmp);
Image.Picture.SaveToFile('Screenshot.bmp');
bmp.Free;
end;
А приведенный ниже пример без самого использования именно компонента Image делать нам будет скриншот и опосля сохранять изображение в bmp-формате
Код:
function Screenshot: TBitmap;
var
dw: HWND;
dc: HDC;
begin
Result := TBitmap.Create;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
dw := GetDesktopWindow;
dc := GetDC(dw);
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, dc, 0, 0, SRCCOPY);
ReleaseDC(dw, dc);
Result.SaveToFile('Screenshot.bmp');
end;
А теперь, представлю на ваше рассуждение пример кода без использования компонента под названием Image. В данном случае скриншот делатся будет, а само изображение сохраняется в jpg- формате.
uses jpeg;
var
DC : HDC;
bmp : TBitmap;
jpgImg: TJPEGImage;
begin
bmp := TBitmap.Create;
jpgImg := TJPEGImage.Create;
bmp.Height := Screen.Height;
bmp.Width := Screen.Width;
DC := GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY);
ReleaseDC(0, DC);
jpgImg.Assign(bmp);
jpgImg.CompressionQuality:=100;
jpgImg.SaveToFile('Screenshot.jpg');
jpgImg.Free;
bmp.Free;
end;
Спонсор поста: компания good-host.net предоставляет для своих клиентов качественный и дешевый хостинг. Только у нас вы получаете хороший хостинг за небольшие деньги!