Bonjour a tous, voilà mon problème, je suis en train de mettre en place une méthode de comparaison de signature manuscrites. Cette méthode s applique sur la distance élastique (à titre d 'info). Mon problème est que j aimerai obtenir une image bitmap à partir de mon tableau 2d, celui ci represente un graphique correspondant à la ressemblance de deux signature. Malheureusement il y a un prb, soit au niveau de mes en têtes, soit dans ma déclaration. Qq 1 pourrait il m aider. Merci
BOOL CSignature::SaveBitmapstruct(char *nom,int **image,int NBL,int NBC)
{
FILE * pfile=fopen("test.txt","w+");
for (int i=0;i<NBL;i++)
{for (int j=0;j<NBC;j++)
{
fprintf(pfile,"%d\t",image[i][j]);
}
fprintf(pfile,"\n");
}
fprintf(pfile,"\n");fprintf(pfile,"\n");fprintf(pfile,"\n");
fclose(pfile);
CFile f;
// int h,l,dim;
BITMAP bitmap1;
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER info;
unsigned char* ptrData1= new unsigned char[NBL*NBC*3];
// BITMAPINFOHEADER bmi;
info.biSize = sizeof(BITMAPINFOHEADER); // Size of structure
info.biWidth = NBC+1; // Bitmaps width in pixels
info.biHeight = NBL+1; // Bitmaps height n pixels
info.biPlanes = 1; // Number of planes in the image
info.biBitCount = 32; // The number of bits per pixel
info.biCompression = BI_RGB; // The type of compression used
info.biSizeImage = 0; // The size of the image in bytes
info.biXPelsPerMeter = 0; // Horizontal resolution
info.biYPelsPerMeter = 0; // Veritical resolution
info.biClrUsed = 0; // Number of colors actually used
info.biClrImportant = 0; // Colors most important
//mBMI = info;
bmfh.bfType = 0x4d42; // 0x4d42 = 'BM'
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bmfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
bmfh.bfOffBits = 0x36;
/*
info.biSize = sizeof ( BITMAPINFOHEADER );
info.biWidth = NBC;
info.biHeight = NBL;
info.biPlanes = 1;
info.biBitCount = 24;
info.biCompression = BI_RGB;
info.biSizeImage = 0;
info.biXPelsPerMeter = 0x0ec4;
info.biYPelsPerMeter = 0x0ec4;
info.biClrUsed = 0;
info.biClrImportant = 0;
*/
f.Open(nom,CFile::modeCreate | CFile::modeWrite);
f.Write(&bmfh,sizeof ( BITMAPFILEHEADER ));
f.Write(&info,sizeof ( BITMAPINFOHEADER ));
for( i=NBL-1;i>-1;i--)
for(int j=NBC-1;j>-1;j--)
{
*(ptrData1)=(unsigned char)image[i][j];
ptrData1++;
*(ptrData1)=(unsigned char)image[i][j];
ptrData1++;
*(ptrData1)=(unsigned char)image[i][j];
ptrData1++;
}
f.Write(ptrData1,NBL*NBC*3*sizeof(unsigned char));
f.Close();
// f.Write(input.get_ptrpixel(),bitmap1.bmHeight*bitmap1.bmWidth*3*sizeof(char));
/*for (i=0;i<NBL;i++)
for (j=0;j<NBC;j++)
fwrite(&image[i][j],1,1,fich);
fich->Close();*/
return true;
}