在CANVAS上画的图形如何保存为文件!(50分)

  • 主题发起人 主题发起人 wxf_wxf
  • 开始时间 开始时间
W

wxf_wxf

Unregistered / Unconfirmed
GUEST, unregistred user!
在CANVAS上画的图形如何保存为文件!
 
你可以先用一个TImage控件,将Cavas复制给它的Canvas属性,然后在利用TImage的
Pictrue属性中的一个SaveToFile保存文件。
 
建一个var T: Tbitmap;

T:=TBitmap.Create;
T.Width:=.....;
T.Height:=.....;
T.Canvas.CopyRect(.....)//或Bitblt(..........)
T.SaveToFile(.....);
T.Free;
 
不用那么麻烦,直接用BitBlt不是更快吗?
在API中声明:
Function BitBlt(hDestDC:Thandle;x:Integer;y:Integer;nWidth:Integer;nHeight:Integer;
hSrcDC:THandle;xSrc:Integer;ySrc:Integer;dwRop:Dword):Long:stdcall;
 
不会啊,我原来做了一个换背景的软件,是这样做的,没有问题啊。
简单的
var h:HDC;
begin
h:=GetWindowDC(0);//得到桌面的DC
BitBlt(image1.canvas.handle,0,0,800,600,h,0,0,SrcCopy);
ReleaseDC();
end;
 
定义完整的作图数据记录,不同的图元有不同的记录,存入数据库;
读入数据时,再重新绘图。
 
问题是这样的,我用一个DRAWGRID作为画布在其上面画图,由于图形很大超出了屏幕的显示范围因此
在用BitBlt这相方法时他只将我当前见到的保存到文件当中去了,而见不到的没有保存,请问
有何办法?
 
那就用TBitmap的hdc
 
我已经解决了,你们所说的方法只能满足部分功能!
 
后退
顶部