Объясните, пожалуйста, как работать с графикой с помощью API.- Как сделать захват экрана?
- Можно ли сжать картинку по алгоритмам JPEG и PNG, пользуясь средствами Windows? (mspaint по крайней мере умеет
) Когда делал на VCL с использованием TBitmap был примерно такой код:
| Код | uses PNGImage; //PNG support (http://pngdelphi.sourceforge.net/) procedure GetScreenShot(hWnd: HWND); var WP: TWindowPlacement; DC: TBitmap; procedure SaveToPNG(Source: TBitmap; Path: string; Compression: TCompressionLevel); var Png: TPNGObject; begin Png := TPNGObject.Create; Png.Assign(Source); Png.CompressionLevel := Compression; Png.SaveToFile(Path); Png.Free; end; procedure SaveToJpeg(Source: TBitmap; Path: string; Quality: TJPEGQualityRange); var Jpeg: TJpegImage; begin Jpeg := TJpegImage.Create; Jpeg.Assign(Source); Jpeg.CompressionQuality := Quality; Jpeg.SaveToFile(Path); Jpeg.Free; end; begin GetWindowPlacement(hWnd,@WP); DC := TBitmap.Create; DC.Width := WP.rcNormalPosition.Right - WP.rcNormalPosition.Left; DC.Height := WP.rcNormalPosition.Bottom - WP.rcNormalPosition.Top; BitBlt(DC.Canvas.Handle, 0, 0, DC.Width, DC.Height, GetDC(GetDesktopWindow), WP.rcNormalPosition.Left, WP.rcNormalPosition.Top, SRCCopy); case Settings.Format of BMP: DC.SaveToFile(Path + '.bmp'); PNG: SaveToPNG(DC, Path + '.png', Settings.PngCompression); JPG: SaveToJPEG(DC, Path + '.jpg', Settings.JpegQuality); end; DC.Free; end;
|
Как можно это реализовать на WinAPI? |