问题: 如何把Canvas的数据保存为一个BMP文件 ( 积分: 100 )
分类: 图形图象
来自: erace99, 时间: 2003-11-10 16:06:00, ID: 2284386
比如说有一个TCustomControl控件,而且其Height超过屏幕的高度,请问如何可以保存其Canvas上的内容
来自: Tassadar, 时间: 2003-11-10 17:21:00, ID: 2284720
创建一个TBitmap对象然后用CopyRect方法,最后SaveToFile
来自: erace99, 时间: 2003-11-10 17:25:00, ID: 2284746
这样是不可以的,我试过,用CopyRect只能应用于在界面上可视的
来自: hjybh, 时间: 2003-11-10 17:34:00, ID: 2284780
BitBlt(Image_Back.canvas.handle,0,0,Image_Back.width,Image_Back.height,TempImage.canvas.handle,0,0,srccopy);
Image_Back.canvas.SaveToFile('*.bmp');
来自: yu_ting, 时间: 2003-11-10 17:35:00, ID: 2284783
学习
来自: erace99, 时间: 2003-11-10 17:47:00, ID: 2284815
用BitBlt也没有用啊,我试过啦,这些都只能是屏幕上能够显示的
来自: Tassadar, 时间: 2003-11-10 18:24:00, ID: 2284910
看看这段代码吧,绝对可以
with TBitmap.Create do
begin
try
Width := Memo1.Width;
Height := Memo1.Height;
Memo1.PaintTo(Canvas, 0, 0);
SaveToFile('C:/Documents and Settings/Administrator/桌面/test.bmp');
finally
Free;
end;
end;
来自: erace99, 时间: 2003-11-11 9:33:00, ID: 2285717
用Memo.PaintTo和用Bitblt以及CopyRect的效果都是一样的,都不能绘制出不可见的部分,只能绘制出当前在屏幕上可见的部分
来自: Tassadar, 时间: 2003-11-11 14:28:00, ID: 2286586
你要试过才好说话,PaintTo和CopyRect完全是两回事
来自: erace99, 时间: 2003-11-25 10:45:00, ID: 2315246
多人接受答案了。
得分大富翁: hjybh-33,Tassadar-33,yu_ting-34,