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 :
Dans le cas où l'image utilise 16 bits par cannal, savez-vous comment on peut démélanger les pixels?
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);
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:
1. je stock les pixels dans un pointeur uint64*
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)
2. je démélange grace aux méthodes :
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.
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);
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.
Partager