Heyy
im a 12th grade student trying 2 put pictures in my cricket project
i have 2 display pics of all players
i have a code
but it works only for some pictures
at times it crashed down and pc shuts down
any1 has a proper code to display 256 color format in turbo ...
please help
im in dam bad need of help
thnx a lot
following is the code
please do implement changes f necessary
please help me
******************************************************
# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <string.h>
# include <ctype.h>
# include <time.h>
# include <dos.h>
# include <graphics.h>
# include <stdlib.h>
# include <fstream.h>
//BitMap Structure
struct A
{
char type[2]; /* Magic identifier */
unsigned long size; /* File size in bytes */
unsigned short int reserved1, reserved2;
unsigned long offset; /* Offset to image data, bytes */
};
A HEADER,HEADER1;
struct B
{
unsigned long size; /* Header size in bytes */
unsigned long width,height; /* Width and height of image */
unsigned short int planes; /* Number of colour planes */
unsigned short int bits; /* Bits per pixel */
unsigned long compression; /* Compression type */
unsigned long imagesize; /* Image size in bytes */
unsigned long xresolution,yresolution; /* Pixels per meter */
unsigned long ncolours; /* Number of colours */
unsigned long importantcolours; /* Important colours */
};
B INFOHEADER,INFOHEADER1; //This Global Function is used for the resolution of the bitmap. You can set the return value either 1,2 or 3. For me 3 is the best combination.
huge DetectSvga()
{
return 4;
}
void Show()
{
fstream File; //Here you have to define the path of the bitmap file. Like according to this example i have to open one Board1.bmp file. So write you bitmap file path here.
int XCor=100,YCor=100;
File.open("ind.jpg",ios::in);
unsigned char Ch;
File.read((char*)&HEADER,14); //This is the header part of the Bitmap. It always looks like same. Don't change the content hear. The value remains 14 here.
File.read((char*)&INFOHEADER,40); //This is another part of the bitmap, here also the value remains same like 40 here.
unsigned int i;
char ColorBytes[4];
char*PaletteData;
PaletteData=new char[256*3];
if(PaletteData)//if memory allocated successfully
{
//read color data
for(i=0;i<256;i++)
{
File.read(ColorBytes,4);
PaletteData[(int)(i*3+2)]=ColorBytes[0]>>2;
PaletteData[(int)(i*3+1)]=ColorBytes[1]>>2;
PaletteData[(int)(i*3+0)]=ColorBytes[2]>>2;
}
outp(0x03c8,0); //tell DAC that data is coming
for(i=0;i<256*3;i++) //send data to SVGA DAC
{
outp(0x03c9,PaletteData[i]);
}
delete[]PaletteData;
}
for(i=0;i<INFOHEADER.height;i++) //This for loop is used to display the bitmap.
{
for(int j=0;j<INFOHEADER.width;)
{
File.read(&Ch,1); // Here Ch reads the color of your bitmap.
putpixel(XCor+j++,YCor+INFOHEADER.height-i-1,Ch); //XCor and YCor are the X and Y cordinates. It depends upon you.
}
}
File.close();
}
void main()
{
int gd = DETECT, md, a;
installuserdriver("SVGA256",&DetectSvga);
initgraph(&gd,&md,"c:\\tc\\bgi"); //Path may be different in your computer.
Show();
getch();
}