社区
C++ Builder
帖子详情
【高分求】OpenGL绘制的图形如何保存?急,在线等!
yf2100
2004-10-19 01:13:07
这两天用OpenGL编了个三维免刑显示程序,但是不知道用OpenGL在Form上绘制图形后如何保存?
请路过的兄弟指点!谢谢!
...全文
255
7
打赏
收藏
【高分求】OpenGL绘制的图形如何保存?急,在线等!
这两天用OpenGL编了个三维免刑显示程序,但是不知道用OpenGL在Form上绘制图形后如何保存? 请路过的兄弟指点!谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yf2100
2004-10-19
打赏
举报
回复
自己谢了一小段测试的,终于搞定了,呵呵,不敢独享。
测试程序,所以写的不好,本来应该根据窗体大小使用动态内存分配的,另外结合TJPEGImage可以保存为JPG文件:)正在完成中,多谢各位的指教,结贴咯:)
//---------------------------------------------------------------------------
void __fastcall TfrmResult::menuSaveCurrentClick(TObject *Sender)
{
byte r[600][800];
byte g[600][800];
byte b[600][800];
if(OD->Execute())
{
Graphics::TBitmap *tmpBMP=new Graphics::TBitmap();
tmpBMP->Assign(this->GetFormImage());
HDC hDC=GetDC(this->Handle);
wglMakeCurrent(hDC,hRC);
glReadPixels(0,0,800,600,GL_RED,GL_UNSIGNED_BYTE,r);
glReadPixels(0,0,800,600,GL_GREEN,GL_UNSIGNED_BYTE,g);
glReadPixels(0,0,800,600,GL_BLUE,GL_UNSIGNED_BYTE,b);
wglMakeCurrent(NULL,NULL);
for(int j=0;j<800;j++) for(int i=0;i<600;i++) tmpBMP->Canvas->Pixels[j][i]=RGB(r[i][j],g[i][j],b[i][j]);
tmpBMP->SaveToFile(OD->FileName);
delete tmpBMP;
}
}
//---------------------------------------------------------------------------
yf2100
2004-10-19
打赏
举报
回复
WMF、EMF还算是矢量文件。其实什么格式无关紧要,只要是图片就行,BMP应该是最简单的吧,但是用glReadPixels总搞不定
Lewolf
2004-10-19
打赏
举报
回复
啊,这样啊,那你还是存成WMF格式吧,不算矢量,但是好保存一些,windows本身就可以察看的。
yf2100
2004-10-19
打赏
举报
回复
矢量当然好,但是怎么用普通的看图软件查看?我总不能要求用户查看结果时还要安装我得软件吧:(
Lewolf
2004-10-19
打赏
举报
回复
我觉得还是保存为矢量的方式比较好的,也就是参数绘图的那种格式
yf2100
2004-10-19
打赏
举报
回复
就是为了保存标量图片,查到了函数glReadPixels,但是搞不定,读出来的数据不知道什么格式:(
The glReadPixels function reads a block of pixels from the frame buffer.
void glReadPixels(
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
GLvoid *pixels
);
醉马不肖
2004-10-19
打赏
举报
回复
如果保存只是为了显示,存成bmp
如果还想编辑就存矢量(绘制命令),这样在下次读去时,只要执行对应命令就可以了
基于
OpenGL
+Qt的
图形
绘制
系统源码+项目报告(画图板、release版、exe直接运行)(计算机
图形
学
高分
课设).zip
2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也...
Android 4游戏编程入门经典
7.5
绘制
一个红色的三角形 7.5.1 定义视口 7.5.2 定义投影矩阵 7.5.3 指定三角形 7.5.4 综合示例 7.6 指定每个顶点的颜色 7.7 纹理映射:轻松地创建壁纸 7.7.1 纹理坐标 7.7.2 上传位图 7.7.3 ...
《ACM竞赛-C/C++入门》 C语言-13
尹成老师带你步入C语言基础的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以C语言为核心,完整精彩的演练了C语言操作流程以及各种精彩的小项目等,提高竞赛能力,非常适合同学们学习! 清华大学尹成...
android游戏编程入门
7.5
绘制
一个红色的三角形 235 7.5.1 定义视口 235 7.5.2 定义投影矩阵 235 7.5.3 指定三角形 238 7.5.4 综合示例 241 7.6 指定每个顶点的颜色 243 7.7 纹理映射:轻松地创建 壁纸 246 7.7.1 纹理...
VTK User's Guide(中文完整版)
图形
模型--------------------------------------------------------------------------------------13 可视化模型-----------------------------------------------------------------------------------15 3.2 ...
C++ Builder
13,822
社区成员
102,680
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章