OpenGL:将绘制场景保存为bmp图片
来源:互联网 发布:软件hd什么意思 编辑:程序博客网 时间:2023/12/10 22:36
OpenGL:将绘制场景保存为bmp图片,方便出图
void ScreenShot(){GLint pView[4];glGetIntegerv(GL_VIEWPORT,pView);//得到视图矩阵,pView[2]为宽即width,pView[3]为高即heightGLsizei numComponet = 3;GLsizei bufferSize = pView[2]*pView[3]*sizeof(GLfloat)*numComponet;GLfloat* _data = new GLfloat[bufferSize];unsigned char* data = new unsigned char[bufferSize];glPixelStorei(GL_UNPACK_ALIGNMENT, 4);//设置4字节对齐glReadBuffer(GL_FRONT); glReadPixels(pView[0],pView[1],pView[2],pView[3],GL_BGR_EXT,GL_FLOAT,_data);//不是GL_RGB的读取方式,而是GL_BGR或者GL_BGR_ExtglReadBuffer(GL_BACK); for (int i = 0 ; i <bufferSize ; i ++){data[i] = _data[i]*255;}BITMAPFILEHEADER fileHeader;BITMAPINFOHEADER infoHeader;infoHeader.biSize = 40;infoHeader.biWidth = width;infoHeader.biHeight = height;infoHeader.biPlanes = 1;infoHeader.biBitCount = 24;infoHeader.biCompression = BI_RGB;infoHeader.biSizeImage =pView[2]* pView[3] * 3;infoHeader.biXPelsPerMeter = 0;infoHeader.biYPelsPerMeter = 0;infoHeader.biClrUsed = 0;infoHeader.biClrImportant = 0;fileHeader.bfType = 0x4D42;fileHeader.bfReserved1 = 0;fileHeader.bfReserved2 = 0;fileHeader.bfOffBits = 54;fileHeader.bfSize = (DWORD)(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+pView[2]* pView[3] * 3);FILE *fd;if( !(fd = fopen(filepath,"wb+")) )//filepath为你所保存文件的名字{AfxMessageBox("bmp图片申请出错");exit(0);}else{fwrite(&fileHeader,1,sizeof(BITMAPFILEHEADER),fd);fwrite(&infoHeader,1,sizeof(BITMAPINFOHEADER),fd);fwrite(data,1,pView[2]* pView[3] * 3,fd);fclose(fd);}delete[] data;delete[] _data;}场景截图示例:
阅读全文
0 0
- OpenGL:将绘制场景保存为bmp图片
- 把OpenGL场景保存成bmp图片
- OpenGL场景保存为图片
- 将控件区域保存为BMP图片
- c++将DC保存为BMP图片
- 将HIBITMAP保存为bmp图片
- C++将HBITMAP保存为bmp图片
- OpenGL将当前屏幕保存为bmp/png/jpg文件
- 利用opengl将3ds文件导入场景并显示,然后保存这个场景为bmp格式图像,其结果与显示不同,问题出在哪儿了
- opengl场景保存成BMP文件
- opengl场景保存成BMP文件
- 如何将OpenGL中的场景保存为Bitmap位图文件
- MFC 视图-OpenGL场景-CDialogBar三个界面保存为图片
- 图片保存为word ,bmp
- 保存CBitmap为bmp图片
- 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
- 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
- opengl保存数据为bmp文件
- Android碎片事务提交transaction.commit()和transaction.commitnow()的区别以及源码完全解析
- HTML-图像的使用(img标签和map标签的使用)
- 算法笔记1
- 使用Thumbnails压缩图片
- 数组中的逆序数(用到归并排序)
- OpenGL:将绘制场景保存为bmp图片
- 【资料合集】阿里巴巴开源技术汇总——内含115个软件与100+技术文档、PDF下载
- 低层视觉:使用一幅图像——纹理
- 统计学习方法——模型的选择与评估(过拟合、泛化能力)
- MyEclipse环境搭建Maven开发环境
- android.view.WindowLeaked:Activity has leaked window DecorView@9a11182[] that was originally added h
- Java多线程总结之聊一聊Queue
- spark2.1源码编译
- Spring Boot学习(八)之使用NoSQL数据库(一):Redis