opengl实现简单的图片读取

opengl实现简单的图片读取

#include<gl/glut.h>
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include <cstdio>
static GLint  ImageHeight;
 static  GLint ImageWidth;
static GLint PixelLength;
static GLubyte*  pixelData;
void display(void)
{
    
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glDrawPixels(ImageWidth, ImageHeight, GL_BGR_EXT, GL_UNSIGNED_BYTE, pixelData);
    glutSwapBuffers();
    glFlush();
}
int main(int argc, char** argv)
{
    FILE* pFile = fopen("Penguins.bmp","r+b");
    if (pFile == 0)  exit(0);
    fseek(pFile, 0x0012, SEEK_SET);
    fread(&ImageWidth,sizeof(ImageWidth)/3,3,pFile);
    fseek(pFile,0x0016,SEEK_SET);
    fread(&ImageHeight, sizeof(ImageHeight) / 3, 3,pFile);
    PixelLength = ImageWidth * 3;
    while (PixelLength % 4 != 0)
        ++PixelLength;
    PixelLength *= ImageHeight;
    PixelLength += 54;
    pixelData=(GLubyte*)malloc(PixelLength);
    if (pixelData == 0)  exit(0);
    fseek(pFile, 54, SEEK_SET);
    fread(pixelData, PixelLength, 1, pFile);
    
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE);
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(200, 200);
    glutCreateWindow("256色图片读取");
    glutDisplayFunc(display);
    glutMainLoop();
    return 1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值