BITMAPINFOHEADER* ReadImage(char* szFileName)
{
size_t nSize = 0;
size_t nRead = 0;
size_t nHeaderSize = 14;
BITMAPINFOHEADER* pBitmap = NULL;
FILE* fp=fopen(szFileName, "rb");
if (fp==NULL)
{
printf("%s: failed to open with errno %d.\n", szFileName, errno);
return NULL;
}
fseek(fp, 0, SEEK_END);
nSize = ftell(fp);
fseek(fp, (long)nHeaderSize, SEEK_SET ); nSize -= nHeaderSize;
pBitmap = (BITMAPINFOHEADER*)malloc(nSize);
if (pBitmap==NULL)
{
printf("%s: failed to alloc memory.\n", szFileName);
fclose(fp);
return NULL;
}
nRead = fread(pBitmap, 1, nSize, fp);
if (nRead!=nSize)
{
free(pBitmap);
printf("%s: failed to read image.\n", szFileName);
fclose(fp);
return NULL;
}
fclose(fp);
return pBitmap;
}
void main( int argc, char *argv[])
{
DrmErrorCode_t nRetCode;
FC3Template_t hTemplate1, hTemplate2;
FC3Encode_t hEncoder;
FC3Match_t hMatcher;
double dScore;
char image1[]={'a'};
char image2[]={'h'};
scanf("%s",&image1);
if (argc!=3)
{
printf("Usage: %s Image1.bmp, Image2.bmp\n", argv[0]);
}
BITMAPINFOHEADER* pBitmap1 = NULL;
BITMAPINFOHEADER* pBitmap2 = NULL;
pBitmap1 = ReadImage(argv[0]);
if (pBitmap1==NULL)
{
printf("Error while reading Image1\n");
}
scanf("%s",&image2);
pBitmap2 = ReadImage(argv[1]);
if (pBitmap2==NULL)
{
printf("Error while reading Image2\n");
}
free(pBitmap1);
free(pBitmap2);
}
Please see comments in code. The end of ReadImage and main procs