[OpenGL调试]保存并查看内存中的数据图像

来源:互联网 发布:java switch语句 编辑:程序博客网 时间:2024/04/17 04:32

前言

在编写OpenGL程序时,经常会遇到需要将从GPU的FBO数据拷贝到CPU端的内存中。此时,需要保存图像数据,才能确认内存中的数据是否正确。

保存图像数据

代码写在如下:

        std::ofstream out("D:/image.raw" , std::ios::out | std::ios::binary);        out.write((char*)(pOut) , m_iWidth*m_iHeight*4);        out.close();

其中,m_iWidth*m_iHeight*4 表示字节数。4 表示的是RGBA格式,如果是RGB 格式,则是3。

查看图像数据

但是,这样保存出来的图,是不能直接使用Window的照片查看器打开。此时,我推荐大家下载一款开源的看图软件:ImageJ —ImageJ
操作方法:打开ImageJ软件,菜单栏中File->Import->Raw, 然后选中需要查看的文件,
此时,会弹出设置图像信息的参数: ImageType, Width,Height, 其它的基本使用默认参数
就可以了。

此时,就显示出保存下来的图片。

0 0