有两种方法:
1、将选中区域使用考屏抓拍下来,保存即可
2、使用数字图象处理技术,判断图象区域,然后根据图象的存储格式重新构造一个图象
第一个比较简单,容易实现,但是效果不一定与原图象完全相同,当然效果还是可以,至少肉眼上是,抓拍程。
第二个实现比较复杂,你需要去了解图象处理技术,但是可以保证图象的质量。
以下是抓屏程序:
procedure Tclient.ScreenCap(LeftPos, TopPos, RightPos, BottomPos: integer);
var
RectWidth, RectHeight: integer;
SourceDC, DestDC, Bhandle: integer;
Bitmap: TBitmap;
begin
RectWidth := RightPos - LeftPos;
RectHeight := BottomPos - TopPos;
SourceDC := CreateDC('DISPLAY', '', '', nil);
DestDC := CreateCompatibleDC(SourceDC);
Bhandle := CreateCompatibleBitmap(SourceDC,
RectWidth, RectHeight);
SelectObject(DestDC, Bhandle);
BitBlt(DestDC, 0, 0, RectWidth, RectHeight, SourceDC,
LeftPos, TopPos, SRCCOPY);
Bitmap := TBitmap.Create;
Bitmap.Handle := BHandle;
BitMap.SaveToStream(BmpStream);
BmpStream.Position := 0;
LeftSize := BmpStream.Size;
Bitmap.Free;
DeleteDC(DestDC);
ReleaseDC(Bhandle, SourceDC);
end;