Code:
unsigned long t = MemoireTaille*sizeof(unsigned char);
buffer = new unsigned char[t];
for (stripCount = 0; stripCount < stripMax; stripCount++)
{
result = TIFFReadRawStrip (image, stripCount, buffer + imageOffset, stripSize);
imageOffset += result;
}
unsigned long t2= MemoireTaille*sizeof(double);
dest = new double[t2];
for(i=0;i<MemoireTaille;i++)
dest[i]=(double)buffer[i];
OMG...
déjà aussi bien
Code:
unsigned long t = MemoireTaille*sizeof(unsigned char);
buffer = new unsigned char[t];
que
Code:
unsigned long t2= MemoireTaille*sizeof(double);
dest = new double[t2];
sont faux;
c'est:
Code:
buffer = new unsigned char[MemoireTaille];
et
Code:
dest = new double[MemoireTaille];
Ensuite.
Code:
for(i=0;i<MemoireTaille;i++)
dest[i]=(double)buffer[i];
la conversion ne se fait pas toute seule...
le unsigned char est codé sur 8 octets: de 0x00 à 0xFF
tu as 3 à 4 valeurs unsigned char à chaque pixel. (rouge vert bleu eventuellement alpha)
ca te donne un double qui les regroupe.
ca fait aussi qu'au début peut étre que c'etait
buffer = new unsigned char[MemoireTaille*3 ou 4];
donc tu dois revoir les specs du tiff et tout le tralala avec google.