位图、图像(openGL)

OpenGL不仅可以处理几何图元,还能处理位图和图像数据。位图由单一位信息组成的像素数组构成,而图像的每个像素通常包含多个位。尽管OpenGL不直接支持文件读写,但可以通过编程实现位图的绘制和图像的基本操作,如读取、写入、复制像素。此外,像素存储模式的设置影响数据布局,像素缩放也是常见的图像处理操作。
摘要由CSDN通过智能技术生成

0.概述

相对于几何图元而言的;opengl除了可以处理几何图元外,还可以处理位图和图像。位图和图像数据都是采用矩阵的像素数组的格式,它们之间的唯一区别在于位图的每一个像素是由一个位的信息组成的,而图像的每个像素一般包含了多个位。

另外opengl并不支持从文件中读取像素和图像以及把像素和图像保存到文件中。

1.位图

a.位图绘制

位图位置(光栅位置)确定

void glRasterPos{234}{SIFD}[V](TYPE x,TYPE y,TYPE z,TYPE w);
位图绘制
void glBitmap( GLsizei width,GLsizei height,GLfloat xbo,GLfloat ybo,GLfloat xbi,GLfloat ybi,const GLubyte *bitmap);
显示由*bitmap指定的位图。位图的原点是放在光栅位置的,若当前光栅位置无效,则不显示无效的那部分位图。参数xbo和ybo定义位图的原点(正值时,原点向上移动;负值时,原点向下移动)。参数xbi和ybi之处在位图光栅化后光栅位置的增量。

位图是自下往上存储的

b.栗子

栗子来源:http://my.oschina.net/sweetdark/blog/172544?fromerr=X3AM9DZk

#include "grapg.h"

GLubyte fire[128] = { //位图的存储是自底向上的 
						0x00, 0x00, 0x00, 0x00, 
						0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0xc0,
						0x00, 0x00, 0x01, 0xf0,
						0x00, 0x00, 0x07, 0xf0,
						0x0f, 0x00, 0x1f, 0xe0,
						0x1f, 0x80, 0x1f, 0xc0,
						0x0f, 0xc0, 0x3f, 0x80,    
						0x07, 0xe0, 0x7e, 0x00,
						0x03, 0xf0, 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值