发布一小段代码: 图象读取代码(OpenGL纹理的加载以及渲染结果的保存)

鉴于很多同志还使用类似aux之类古老的东西来读取纹理。甚至很多同志还不知道怎么读取jpg之类的文件让它成为OpenGL纹理。本人近日包装了一个FreeImage库的包装类。能简单的加载纹理,保存图像,功能不强。特点是方便。示例代码如下:

 

//loading texture
 xImage image;
 if(false == image.load(filename)  )
  return false;
 xImageSize imgSize = image.getSize();
 image.scalePOT();//放大到2的幂
 image.convert(PIXELFORMAT_B8R8G8A8);//转成BGRA格式
 xImageSize texSize = image.getSize();

 glBindTexture(GL_TEXTURE_2D, m_texID);
 glTexImage2D(GL_TEXTURE_2D,0,4,texSize.w, texSize.h,0,GL_BGRA_EXT,  GL_UNSIGNED_BYTE, image.data() );
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, GL_REPEAT);
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T, GL_REPEAT);
 glTexEnvi(GL_TEXTURE_2D,GL_TEXTURE_ENV_MODE,GL_MODULATE);


//save the screen to disk
     xImage image;
     ePIXEL_FORMAT fmt = PIXELFORMAT_B8G8R8A8;
     image.load(800 , 600 , fmt);
     glReadBuffer(GL_FRONT);
     glReadPixels(0 0 , 800 , 600,glfmt , datatype , image.data() );
     image.save("screen.tga");
     image.free();

freeimage库的下载地址:
http://freeimage.sf.net/

同时代码包里还附带一个类xml的配置文件解析器。
欢迎使用。有好的建议和bug请报告给我。
eMail: xheartblue@etang.com
下载地址: http://xreal.51.net/Download/public_src.zip
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值