Put a bitmap file in the same directory of this code. Name this file "a.bmp"
Code =>
#include<GL/glut.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct __attribute__((__packed__)) { 
    unsigned short type; 
    unsigned long size; 
    unsigned short reserved1; 
    unsigned short reserved2; 
    unsigned long offsetbits; 
} BITMAPFILEHEADER1;
typedef struct __attribute__((__packed__)) {
    unsigned long size; 
    unsigned long width; 
    unsigned long height; 
    unsigned short planes; 
    unsigned short bitcount; 
    unsigned long compression; 
    unsigned long sizeimage; 
    long xpelspermeter; 
    long ypelspermeter; 
    unsigned long colorsused; 
    unsigned long colorsimportant; 
} BITMAPINFOHEADER1;
typedef struct { 
    unsigned char blue; 
    unsigned char green; 
    unsigned char red; 
} SINGLE_PIXEL1;
void display()
{
    FILE *fp;
    unsigned char p;
    int x=0,y=0,c=0;
    float r,g,b;    
    BITMAPFILEHEADER1 bitmp;    
    BITMAPINFOHEADER1 bitm; 
    glClearColor(1.0,1.0,1.0,0.0);
    glClear(GL_COLOR_BUFFER_BIT);
    fp = fopen("a.bmp","rb");//Filename is given    
    fread(&bitmp,14,1,fp);  
    fread(&bitm,40,1,fp);   
    gluOrtho2D(0.0,bitm.width,0.0,bitm.height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glViewport(0,0,bitm.width,bitm.height);
    glBegin(GL_POINTS);
    int cnt=0;
    int bi,gi,ri;
    unsigned char tp1,tp2,tp3;
    while(!feof(fp))
    {
        fread(&p,1,1,fp);       
        //b = p/255.0;
        tp1=p;      
        fread(&p,1,1,fp);
        //g = p/255.0;
        tp2=p;      
        fread(&p,1,1,fp);
        //r = p/255.0;
        tp3=p;
        //glColor3f(r,g,b);
        glColor3ub(tp1,tp2,tp3);
        glVertex2i(x++,y);
        if(x == bitm.width)     
        { 
            x = 0;
            y++;
        }
    }
    glEnd();
    glFlush();
    fclose(fp);
}
int main(int argc, char* argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(800,800);
    glutInitWindowPosition(100,150);
    glutCreateWindow("BITMAP");
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}
Put the code in a file named "bit.cpp". Then compile this "bit.cpp" file:
g++ bit.cpp -o bit -lglut -lGL -lGLU
And run:
./bit
You will see black and white(gray) image in glut window.
How can i draw colored pixels? glColor3ub(tp1,tp2,tp3); this should set color for vertex. Shouldn't it? But it's not drawing colored pixels, why?
How can I get colored image in glut window?
Any answer will be highly appreciated.
Thanks in advance.
