Bonjour,

J'essaye de manipuler en C des images RGBA TIFF à 16-bits par canal,
je n'ai pas trouvé d'information sur les images 16 bits dans les spécifications de la Libtiff, pourtant de telles images existent.

pour des images RGBA à 8-bits par canal, chaque pixel est stocké dans un uint32, et peut être démélangé (ou "splité") en 3 composantes R,G,B et A de 8 bits chacune.
Actuellement j'utilise la méthode suivante (voir code complet ici https://docs.google.com/file/d/0B7Bj...it?usp=sharing):

1. je stock les pixels dans un pointeur uint32* (en utilisant la méthode TIFFReadRGBAImageOriented de la libtiff), j'appelle ce pointeur data_tiff
2. je démélange grace aux méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
(uint8) TIFFGetR(*data_tiff);
(uint8) TIFFGetG(*data_tiff); 
(uint8) TIFFGetB(*data_tiff); 
(uint8) TIFFGetA(*data_tiff);
Dans le cas où l'image utilise 16 bits par cannal, savez-vous comment on peut démélanger les pixels?
Si j'avais accès aux données de l'image sous la forme d'un pointeur uint64 je pourrais facilement adapter mon code de la manière suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#define    TIFF16GetR(abgr)    ((abgr) & 0xffff)
#define    TIFF16GetG(abgr)    (((abgr) >> 16) & 0xffff)
#define    TIFF16GetB(abgr)    (((abgr) >> 32) & 0xffff)
#define    TIFF16GetA(abgr)    (((abgr) >> 48) & 0xffff)
1. je stock les pixels dans un pointeur uint64*
2. je démélange grace aux méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
(uint8) TIFF16GetR(*data_tiff);
(uint16) TIFF16GetG(*data_tiff); 
(uint16) TIFF16GetB(*data_tiff); 
(uint16) TIFF16GetA(*data_tiff);
Mais il semble que nativement les données ne soient pas stockées sous la forme d'un pointer uint64 bien que l'image soit RGBA 16 bits.

J'ai aussi du mal a manipuler les images 16 bits en niveaux de gris avec la même démarche (utiliser TIFFReadRGBAImageOriented pour stockere les pixels dans un pointeur et essayer de convertir chaque pixel en uint16)

Plus généralement, auriez vous de la doc sérieuse sur la manipulation des images TIFF 16 bits ?

Merci,

Rémy A.