dianziyun 发表于 2016-5-14 10:09:02

利用opengl读入或输出BMP格式的图片

很早以前就写的一个模块,利用这个模块可以将opengl绘制的窗口中的图片保存成最简单的BMP格式,也可以将24位或32位的BMP文件读入,并以贴图的形式贴在想要的位置上。这里对模块进行简单的说明。
首先是两个结构体,其实是BMP格式文件一开始的文件头和信息头,如果想要了解可以上网去看一下BMP的数据格式。子列行程序一共四个,但在外部调用的只需要两个即可。
一个是SAVEBMP(FILENAME, WB, WH, WIDTH, HEIGHT), FILENAME是保存的文件名,WB是保存的起始横坐标,WH是保存的起始纵坐标。如果想将整个opengl窗口保存下来,这两个值设成0便可以,最后两个参数是保存的图片宽度和高度。这个子程序在mydisplay回调函数中的最后,但是在帧缓冲刷新之前调用。
DRAWBMP(FILENAME, FMAT)是将已有的BMP文件绘制于窗口中,FMAT代表这个BMP文件是24位还是32位。因为所有变量都是私有变量,所以不用当心与外部变量产生冲突。

raosc 发表于 2018-6-17 10:37:51

用所提供代码,载入*.bmp文件,没见显示,也没报错,什么原因

nightcat 发表于 2023-1-17 17:28:04

OpenGL用于Fortran可实现各种功能的图形编程,楼主给出这样的通用模块,有用,很好。
页: [1]
查看完整版本: 利用opengl读入或输出BMP格式的图片