Je possède ce code:décompression des données TIFF dégonflés
ifstream istream;
std::string line;
TIFHEAD header;
istream.open("pic.tif",ios::binary|ios::in);
istream.read((char*)&header, sizeof(TIFHEAD));
cout<<hex<<header.Identifier<<" "<<header.Version<<" "<<header.IFDOffset<<endl<<endl;
istream.seekg(header.IFDOffset);
WORD numEntries1;
istream.read((char *)&numEntries1, sizeof(WORD));
cout<<numEntries1<<endl;
DWORD tagOffset;
DWORD stripByte;
for(int i=0; i<numEntries1; i++) {
TIFTAG tag;
istream.read((char *)&tag, sizeof(TIFTAG));
cout<<istream.tellg()<<":"<<tag.TagId<<" "<<tag.DataType<<" "<<tag.DataCount<<" "<<tag.DataOffset<<endl;
}
J'ai aussi fait un hexdump sur pic.tif, et a obtenu environ 450 lignes de valeurs hexagonales, dont beaucoup ont été reflétées par les données d'étiquette et en-tête I J'imprime.
Mais j'ai trouvé que ce TIFF a la compression 32946, qui est COMPRESSION_DEFLATE.
Comment puis-je décompresser les autres valeurs hexadécimales du hexdump pour obtenir les valeurs float réelles de ce TIFF? Je sais que Zlib peut décompresser, mais peut-il décompresser la compression de dégonflement, et si oui, comment?
Je sais ce que les valeurs flottantes doivent être à travers LibTIFF, mais je ne peux pas l'utiliser.Il s'agit d'un tiff 32 bits 512x512 qui a des valeurs flottantes.
En outre, je peux poster plus d'informations sur le TIFF ou les valeurs de hexdump si quelqu'un veut le voir.
Seriez-vous par hasard prêt à donner un exemple? Je l'ai recherché et je reçois juste des espaces vides lorsque les données reviennent ... –
Cela ne devient pas plus simple que d'utiliser 'uncompress()'. Remplissez simplement les paramètres. –