






























uses Classes, SysUtils, Clipbrd, Graphics,PNGImage, JPEG;
type TClipboardImageFormat = (cfBMP, cfPNG, cfJPEG); procedure SaveClipboardImageToFile(const FileName: string; Format: TClipboardImageFormat = cfBMP; JPEGQuality: Integer = 90); function ClipboardHasImage: Boolean; implementation uses PNGImage, JPEG; function ClipboardHasImage: Boolean; begin Result := Clipboard.HasFormat(CF_BITMAP) or Clipboard.HasFormat(CF_PICTURE) or Clipboard.HasFormat(CF_METAFILEPICT); end; procedure SaveClipboardImageToFile(const FileName: string; Format: TClipboardImageFormat; JPEGQuality: Integer); var Bitmap: TBitmap; PNG: TPNGImage; JPEG: TJPEGImage; begin if not ClipboardHasImage then raise Exception.Create('剪贴板中没有图片'); Bitmap := TBitmap.Create; try Bitmap.Assign(Clipboard); case Format of cfPNG: begin PNG := TPNGImage.Create; try PNG.Assign(Bitmap); PNG.SaveToFile(FileName); finally PNG.Free; end; end; cfJPEG: begin JPEG := TJPEGImage.Create; try JPEG.Assign(Bitmap); JPEG.CompressionQuality := JPEGQuality; JPEG.SaveToFile(FileName); finally JPEG.Free; end; end; else // cfBMP Bitmap.SaveToFile(FileName); end; finally Bitmap.Free; end; end;
procedure TMainForm.EditPaste(Sender: TObject); var ClipboardText, BMPdir: string; begin ClipboardText := Clipboard.AsText; if ClipboardHasImage then begin // BMPdir:= // 保存为BMP BMPdir:= ExtractFilePath(ParamStr(0)) + 'image.bmp' ; SaveClipboardImageToFile(BMPdir,cfBMP, 95); if FileExists(BMPdir) then RichEx.InsertBitmap(editor.Handle,BMPdir) end else begin editor.SelText:= ClipboardText; end; end;
// 保存为BMP SaveClipboardImageToFile('C:\image.bmp',cfBMP, 95); // 保存为PNG //SaveClipboardImageToFile('C:\image.png', cfPNG, 95); // //// 保存为JPEG(设置质量) //SaveClipboardImageToFile('C:\image.jpg', cfJPEG, 95);

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。