当前位置:编程学习 > C#/ASP.NET >>

VC++.net 画图问题(急)

小弟第一次在这里提问希望能找到答案。确实已经找遍所有相关的中文站点了。还是找不到答案。

现在小弟弟我在用vc++.net做一个有关于画图的项目。
其实画图并不是很难,就是画格子,格子里面是文字。

格子1--->格子2--->格子3---->格子4

         格子5



如上图,相关格子之间用带箭头的线连接起来,当然除了水平线还有斜线,比如从格子1到格子5的斜线。
画完的图保存成jpg文件。
以上都不是问题。
原来使用的方法是
Graphics^ g;
bmp = gcnew System::Drawing::Bitmap(bmp_w,bmp_h);
g = Drawing::Graphics::FromImage(bmp);

//画图
g->DrawRectangle(pen, x1, y1, x2-x1, y2-y1);
。。。


//保存
bmp->Save("bmpBig.jpg", Drawing::Imaging::ImageFormat::Jpeg);


但是现在的问题是
由于最后花的图可能会很大,所以建立bmp对象的时候会占用很大的内存空间,这样到一定限度就会出现内存溢出的问题。
所以考虑用另外一种方法,不知道是否能实现。
就是现在的做法是把bmp当作画布,在上面画图,但是bmp这个画布越大需要的内存就越大。
有没有其他的对象作为画布来代替bmp,在这样的对象上把图画好以后,然后再把大图分割成一块一块小的bmp,
并且最后保存生成jpg文件呢?


有没有什么别的对象可以做为画布,在上面画很大图画的时候,又不占用很大资源,最后可以用StretchBlt来分割生成文件呢?
先谢谢大虾了。1111111 --------------------编程问答-------------------- 没人吗?自己顶 --------------------编程问答-------------------- 再顶。
大侠们帮帮小弟吧。 --------------------编程问答-------------------- 感觉楼主思路有问题,不要对位图操作,而是应该用图形
--------------------编程问答-------------------- 虽然BITMAP大的时候性能会很差,但是楼主你的思路可以转换一下。
你的BITMAP要作为画布,不一定要实际的大小那么大,用户或者计算机只需要某一时刻处理可见区域内的那部分就可以了。
其余部分可以在可见时,重绘。
这样这个BITMAP就一直是一个固定大小,性能问题就解决了。

另外正如HDT所说,好像你的方法可以改善。。。 --------------------编程问答-------------------- 接分是王道!
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,