Specifications

Intel
®
Image Processing Library Reference Manual
4-48
4
Example 4-8 Translating a DIB Image Into an IplImage
int example47( void ) {
#define WIDTH 8
#define HEIGHT 8
BITMAPINFO *dib; // pointer to bitmap
RGBQUAD *rgb; // pointer to bitmap colors
unsigned char *data; // pointer to bitmap data
BITMAPINFOHEADER *dibh; // header beginning
IplImage *img = NULL;
BOOL cloneData; // variable to get result
int i;
__try {
int size = HEIGHT * ((WIDTH+3) & ~3);
// allocate memory for bitmap
dib = malloc(sizeof(BITMAPINFOHEADER)
+ sizeof(RGBQUAD)*256 + size );
if( NULL == dib ) return 0;
// define the pointers
dibh = (BITMAPINFOHEADER*)dib;
rgb=(RGBQUAD*)((char*)dib + sizeof(BITMAPINFOHEADER));
data=(unsigned char*)((char*)rgb+sizeof(RGBQUAD)*256);
// define bitmap
dibh->biSize = sizeof(BITMAPINFOHEADER);
dibh->biWidth = WIDTH;
dibh->biHeight = HEIGHT;
dibh->biPlanes = 1;
dibh->biBitCount = 8;
dibh->biCompression = BI_RGB;
dibh->biSizeImage = size;
dibh->biClrUsed = 256;
dibh->biClrImportant = 0;
continued