怎样把窗体上的一个矩形区域拷贝下来并保存为一个图片?(100分)

  • 主题发起人 主题发起人 ynfly
  • 开始时间 开始时间
Y

ynfly

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体上添加了一个TImage对象名称为parentImage,然后可以通过代码创建一些新的TImage对象,但是限制这些新创建的TImage对象只能在ParentImage[/quote]的大小范围内移动,在添加完所有的新的TImage对象后,并调整好这些新的TImage对象的位置后,然后希望通过一个按钮操作把parentImage对象大小范围内的可见部分拷贝下来并保存为一个图片,可以做到吗?如果不能做到,有没有其他的代替方法?
 
canvas.drawrect
 
应该是Canvas.CopyRect函数
 
好像没有canvas.drawRect方法,
另外CopyRect好像是把一个Rect区域拷贝到另外一个Rect区域,但是怎么保存为一个图片呢?
 
create 一个临时的 tbitmap,然后调用 savetofile之类的方法啊。

有问的时间,试一下早就解决啦。
 
你可以把矩形区域拷贝到一个TImage对象的画布上,TImage有一个类似SaveToFile还是SavePicture的方法(记不清了,也没有必要记),调用之就行了。
 
你先用Canvas.CopyRect函数把一个你需要的Rect区域拷贝到另外一个TImage对象的画布上(Rect区域),然后将TImage对象保存为一个文件就行了。
 
{-------------------------------------------------------------------------------
过程名: SnapScrn
作 者: cjsh(wjh_wy@163.com)
日 期: 2004-1-3
功 能: 抓取指定区域屏幕图像
参 数: LeftPos, TopPos, RightPos, BottomPos: integer; VFIleName: string
-------------------------------------------------------------------------------}
procedure SnapScrn(LeftPos, TopPos, RightPos, BottomPos: integer; VFIleName:
string);
var
RectWidth, RectHeight: integer;
SourceDC, DestDC, Bhandle: integer;
Bitmap: TBitmap;
BmpStream: TFileStream;
LeftSize: Integer;
R: TRect;
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.Canvas.Pen.Color := clYellow;
R := Rect(20, 20, 500, 500);
Bitmap.Canvas.Chord(R.Left, R.Top, R.Right, R.Bottom, R.Right, R.Top, R.Left,
R.Top);
Bitmap.Canvas.Pen.Color := clred;

Bitmap.SaveToFile(VFileName);
Bitmap.Free;
DeleteDC(DestDC);
ReleaseDC(Bhandle, SourceDC);
end;
 
好的.我要.
 
按照你的提示已经解决问题,谢谢!
 

Similar threads

S
回复
0
查看
838
SUNSTONE的Delphi笔记
S
S
回复
0
查看
799
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部