zoukankan      html  css  js  c++  java
  • [转]opengl入门例题(读取bmp图片,并显示)

    #include<gl/glut.h>
    #define FileName "bliss.bmp"
    static GLint imagewidth;
    static GLint imageheight;
    static GLint pixellength;
    static GLubyte* pixeldata;
    #include<stdio.h>
    #include<stdlib.h>
    void display(void)
    {
     //glClear(GL_COLOR_BUFFER_BIT);
     //绘制像素
     glDrawPixels(imagewidth,imageheight,GL_BGR_EXT,GL_UNSIGNED_BYTE,pixeldata);
     //---------------------------------
     glFlush();
     glutSwapBuffers();
    }
    int main(int argc,char* argv[])
    {
     //打开文件
     FILE* pfile=fopen("bliss.bmp","rb");
     if(pfile == 0) exit(0);
     //读取图像大小
     fseek(pfile,0x0012,SEEK_SET);
     fread(&imagewidth,sizeof(imagewidth),1,pfile);
     fread(&imageheight,sizeof(imageheight),1,pfile);
     //计算像素数据长度
     pixellength=imagewidth*3;
     while(pixellength%4 != 0)pixellength++;
     pixellength *= imageheight;
     //读取像素数据
     pixeldata = (GLubyte*)malloc(pixellength);
     if(pixeldata == 0) exit(0);
     fseek(pfile,54,SEEK_SET);
     fread(pixeldata,pixellength,1,pfile);
     
     //关闭文件
     fclose(pfile);
     //初始化glut运行
     glutInit(&argc,argv);
     glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
     glutInitWindowPosition(100,100);
     glutInitWindowSize(imagewidth,imageheight);
     glutCreateWindow(FileName);
     glutDisplayFunc(&display);
     glutMainLoop();
    //-------------------------------------
     free(pixeldata);
     return 0;
    }

    原文链接:opengl入门例题(读取bmp图片,并显示)

    链接2:opengl下png图片的加载与显示

    链接3:OpenGL加载与显示Targa位图文件

  • 相关阅读:
    jqmodal遮罩层的实现
    让Editplus和SVN集成
    asp.net很有用的字符串操作类
    TCP socket编程
    Adroid: ProgressBar 的使用
    在想的事情......
    I'm new to CNBlogs!
    压力
    开心工作
    feature
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/9030559.html
Copyright © 2011-2022 走看看