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

问题描述

小弟第一次在这里提问希望能找到答案。确实已经找遍所有相关的中文站点了。还是找不到答案。现在小弟弟我在用vc++.net做一个有关于画图的项目。其实画图并不是很难,就是画格子,格子里面是文字。格子1--->格子2--->格子3---->格子4格子5如上图,相关格子之间用带箭头的线连接起来,当然除了水平线还有斜线,比如从格子1到格子5的斜线。画完的图保存成jpg文件。以上都不是问题。原来使用的方法是Graphics^g;bmp=gcnewSystem::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所说,好像你的方法可以改善。。。
解决方案六:
接分是王道!

时间: 2024-09-19 14:58:14

VC++.net 画图问题(急)的相关文章

paint vent aint vent-QT paintEvent(QPaintEvent *)画图问题 急急急

问题描述 QT paintEvent(QPaintEvent *)画图问题 急急急 #include ""widget.h"" Widget::Widget(QWidget *parent) : QWidget(parent){ setFixedSize(600600); QLabel *label = new QLabel(tr(""Images side is 50 !"")); label->setFixedHei

如何使用两个Teechart画图,急

问题描述 如何使用两个Teechart画图,急 20C 现在小弟设了两个Teechart想要同时显示波形和做完FFT后的图像,我只是将做FFT的程序中的m_chart改成m_chart1,我想设置成第一个Teechart看波形,第二个看FFT, 但是现在只有第一个Teechart工作,而且是显示的FFT,两个Teechart设置不同就只有开始的时候,第一个Teechart变量名是m_chart而且自动生成了tchart1.h和tchart1.cpp文件,第二个Teechart变量名是m_char

C#调用VC DLL 输出参数 急!!!

问题描述 被调dll函数ykt_readopencardno_local(char*pRegion,char*pDeptid,char*pDeptKey,char*pCardtype,char*pCardno,char*pWarnmsg,char*pErrmsg);C#调用代码:[DllImport("kernel32.dll")]privateexternstaticIntPtrLoadLibrary(Stringpath);[DllImport("kernel32.dll

Visual C++中实现双缓冲的基本原理

双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板.首先我们在内存环境中建立一个"虚拟"的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制好的图形"拷贝"到另一块黑板(屏幕)上.采取这种方法可以提高绘图速度,极大的改善绘图效果. 例如在OnDraw()函数中可以如下所述实现双缓冲,其主要步骤分为四步:       CPen Pen;       Pen.CreatePen(PS_INSIDEFRAME,1,RGB(225,2

vc++-为什么VS2010无法创建VC++项目,其他项目可以创建,急急急!!!

问题描述 为什么VS2010无法创建VC++项目,其他项目可以创建,急急急!!! win7旗舰版安装的VS2010无法创建VC++的项目,但是其他语言的都可以创建项目,请问这是什么原因?提示错误: 平台根目录"C:Program Files(x86)MSBuildMicrosoft.Cppv4.0Platforms"不存在.可是文件目录存在啊!!!为什么??? 解决方案 可能是和某些软件冲突吧,我用的是08没有什么问题,记得以前vc6.0和office冲突过,不过08没出现过问题

前端-急问:如何使用ajax动态获取后台数据后将数据利用chart.js画图工具显示曲线?

问题描述 急问:如何使用ajax动态获取后台数据后将数据利用chart.js画图工具显示曲线? 20C 刚刚学习ajax,不是很了解.假如后台数据已经以json类型存在,在前端如何使用ajax获取后台的json数据?求给出具体些的完整代码供参考...还有请问如果数据是一系列二位数组(如[a1b1][a2b2]......)那么如何使用chart.js 将其显示出来?还请各位大神指教! 解决方案 ThinkPHP定时ajax获取后台数据,使用javascript动态修改前端页面的表格来显示数据 解

c++-急!数字图像处理(VC++)!

问题描述 急!数字图像处理(VC++)! 给的是灰度图像,要求对其进行处理.图像打开之类都做完了,求灰度变换,直方图均衡化等等等之类的算法程序! 解决方案 用matlab做里面有现成的API 解决方案二: 用opencvhttp://blog.csdn.net/morewindows/article/details/8364690 解决方案三: 灰度变化比较简单吧,建议你直接找算法,自己实现 解决方案四: 做图像处理的话首选opencv啊,各种常用的包都有,很方便 解决方案五: MFC+Open

数据结构、c语言-急!!!!为何以下程序执行第2功能离开车厂后在vc++6.0环境下程序会报错并终止运行,求解决方案

问题描述 急!!!!为何以下程序执行第2功能离开车厂后在vc++6.0环境下程序会报错并终止运行,求解决方案 #include "stdafx.h" #include #include #include #define max 5 #define pri 5 typedef struct time{ int year; int day; int month; int hour; int min; }Time; typedef struct node{ char num[10]; Tim

vc画图-才接触C语言 求教怎么用VC画图

问题描述 才接触C语言 求教怎么用VC画图 本人菜鸟,请教大神,怎样在VC下写代码才能实现绘图,比如画三叶草,玫瑰花之类的, 需要什么库函数啊??在什么文件包含着?? 各位大神能否给个简单的例子,在下感激不尽! 求教,真心求教!!!