📄 capture.pas
字号:
//###############################################################
//######作者:杨畅(sheepchang)##################################
//######Email:sheepchang@gmail.com QQ:1103754####################
//######我为人人,人人为我。希望大家一起交流,共同进步!##########
//###############################################################
unit capture;
interface
uses
Windows,Classes,Graphics,Controls,Forms,
ExtCtrls,JPEG,clipbrd, Dialogs,ExtDlgs;
type
TForm4 = class(TForm)
Timer1: TTimer;
Image1: TImage;
SavePictureDialog1: TSavePictureDialog;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses setkey;
{$R *.dfm}
//BMP格式图片转JPG格式
procedure BMPToJPG(BmpFileName:string);
var
Jpeg : TJPEGImage;
Bmp : TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.LoadFromFile(BmpFileName);
Jpeg := TJPEGImage.Create;
try
Jpeg.Assign(Bmp);
Jpeg.Compress;
//保存图片
Jpeg.SaveToFile(Form4.SavePictureDialog1.FileName);
finally
Jpeg.Free;
end;
finally
Bmp.Free;
end;
end;
procedure TForm4.Timer1Timer(Sender: TObject);
var
Fullscreen : TBitmap;
FullscreenCanvas : TCanvas;
DC : HDC;
begin
Timer1.Enabled := False;//取消时钟
Fullscreen:=TBitmap.Create;//创建一个BITMAP来存放图象
Fullscreen.Width := Screen.Width;
Fullscreen.Height := Screen.Height;
DC:=GetDC(0);//取得屏幕的DC,参数0指的是屏幕
FullscreenCanvas := TCanvas.Create;//创建一个CANVAS对象
FullscreenCanvas.Handle := DC;
Fullscreen.Canvas.CopyRect
(Rect(0,0,Screen.Width,Screen.Height),FullScreenCanvas,
Rect(0,0,Screen.Width,Screen.Height));
//把整个屏幕复制到BITMAP中
FullScreenCanvas.Free;//释放CANVAS对象
ReleaseDC(0,DC);//释放DC
Image1.Picture.Bitmap := FullScreen;//拷贝下的图象赋给IMAGE对象
Image1.Width := FullScreen.Width;
Image1.Height := FullScreen.Height;
Clipboard.Assign(Image1.Picture);//把Image1中的图象复制到剪贴板
FullScreen.Free;//释放bitmap
if Form2.dxCheckbox2.checked then
begin //若程序的提示参数为真那么出现提示窗体
if Application.MessageBox('全屏已经截取并复制到了剪贴板!可在其它程序中粘贴!现在是否保存?','快速截图提示',MB_YESNO+MB_ICONINFORMATION)=IDYES then
begin
if SavePictureDialog1.Execute then
begin //若保存的图片为文件类型列表中的第一个即*.jpg
if SavePictureDialog1.FilterIndex=1 then
begin//则调用BMP转JPG过程转化
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
BMPToJPG(SavePictureDialog1.FileName);
end
else //若保存的图片不是文件类型列表中的第一个即*.bmp
begin //则默认扩展名为*.bmp
SavePictureDialog1.DefaultExt:='*.bmp';
SavePictureDialog1.FilterIndex:=2;
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
end
end
else
Close;
form4.Close;
end
else
Form4.Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -