:: Yves Jacolin :: Ludovic Granjon :: Softlibre :: OSGeo-fr ::
"Quand on veut reprendre avec utilité, et montrer à un autre qu'il se trompe, il faut observer par quel côté il envisage la chose, car elle est vraie ordinairement de ce côté-là, et lui avouer cette vérité, mais lui découvrir le côté où elle est fausse." Pascal, Pensées Br. 9, Lafuma 5.

Retour vers le sommaire

Chapitre 20 Classe d'image : Miff

Le Format de Fichier d'Image Magick (MIFF) est le format indépendant de la plate-forme d'ImageMagick pour stocker les images bitmap. L'avantage qu'il a sur les autres formats est qu'il stocke toutes les méta-données connu par ImageMagick (comme les profiles de couleurs, les commentaires, l'auteur, le copyright, etc.), tandis que les autres formats peuvent seulement supporté une partie des méta-données disponible ou aucune. Un fichier image MIFF se compose de deux sections. La première section est un en-tête composé de clé décrivant l'image sous forme de texte. La section qui suit comprend les données de l'image binaire. Ces deux sections sont expliqués en détails.

20.1 En tête MIFF

L'en-tête MIFF est composé entièrement de caractères LATIN-1. Les champs dans l'en-tête ont des combinaisons de clé et de valeur au format clé = valeur, chaque clé et valeur sont séparées d'un signe égal (=). Chaque combinaison clé = valeur est délimité par au moins un caractère de contrôle ou d'espace. Les commentaires peuvent apparaître dans la section d'en-tête et sont toujours délimité par des accolades ({}). L'en-tête MIFF se termine toujours par deux points (:), suivi d'un caractère ctrl-Z. Il est aussi commun de faire suivre les deux points de caractères de nouvelle page et de fin de ligne. Le caractère de nouvelle page empêche l'affichage des données binaires lors de l'utilisation de la commande Unix more, tandis que, le ctrl-Z a le même effet que la commande type dans la console Windows.

La liste suivante est une liste partielle de combinaison clé = valeur qui sont typiquement utilisés dans les fichiers MIFF. Lorsque plusieurs valeur sont possible, celle-ci sont listé entre crochets (clé = [valeur1 ; valeur2, valeur3]).

  • background-color = color
  • border-color = color
  • matte-color = color : Cette clé optionnelle informe la couleur de l'arrière-plan, du bord et de la couleur matte respectivement. Une couleur peut être un nom (comme white, voir annexe ) ou une valeur hexadécimale (comme #ccc).
  • class = [DirectClass, PseudoClass] : Le type de données des pixels binaires stockés dans le fichier MIFF. Si cette clé n'est pas présente, les données des pixels DirectClass est assumé.
  • colors = value : Le nombre de couleurs dans l'image DirectClass. pour une image Pseudoclass, cette clé définis le nombre d'entrée dans la carte de couleur. Si cette clé est absente de l'en-tête, et que la classe de l'image est PseudoClass, un carte de couleur de nuance de gris de 256 couleurs linéaire est assumée. Le nombre maximal d'entrée d'une carte de couleur est de 65 536.
  • colorspace = [RGB,CMYK] : L'espace de couleur des données du pixel. RGB par défaut.
  • columns = value : La largeur de l'image en pixels. C'est une clé nécessaire et n'a pas de valeur par défaut.
  • compression = [BZip, Fax, None, RLE, Zip] : Le type d'algorithme utilisé pour compresser les données d'image. Si cette clé n'est pas présente, les données du pixel est assumé sans compression.
  • delay = microseconds : Le temps entre les frames d'une séquence d'images en microsecondes.
  • depth = [8, 16, 32] : La profondeur d'une valeur de couleur simple représentant des valeurs de 0 à 255 (profondeur de 8), à 65 535 (profondeur de 16), ou de 0 à 4 294 964 295 (profondeur de 32). Si cette clé est absente, une profondeur de 8 est assumée.
  • dispose = value : méthode de disposition GIF. Voici les méthodes valides :
    • 0. Aucune disposition définie.
    • 1. Ne pas disposer entre les frames.
    • 2. Écraser les frames avec l'arrière-plan de couleur de l'en-tête.
    • 3. Écraser avec la frame précédente.
  • gamma = value : Le gamme de l'image. Si elle n'est pas défini, un gamme de 1,0 (réponse de clarté linéaire) est assumée.
  • id = ImageMagick : identifie le fichier comme un format de fichier d'image MIFF. Cette clé est nécessaire et n'a pas de valeur par défaut. Bien que cette clé peut apparaître n'importe où dans l'en-tête, elle doit être la première clé de l'en-tête dans la première colonne. Cela permet aux programmes comme file de facilement identifier le fichier comme étant de formatMIFF.
  • iterations = value : le nombre de fois que la séquence d'image doit se répéter. label = { string } définit un titre court ou une description de l'image. Si des espaces apparaissent dans le label, celui-ci doit être entouré d'accolade ({}).
  • matte = [True, False] : indique si l'image possède des données mates. Les données mates sont généralement utile pour le composition d'image.
  • montage = <width>x<height>{+-}<x offset>{+-}<y offset> : Taille et localisation d'un carreau individuelle d'une image

composée. Utilisez cette clé quand une image est une composition d'un certain nombre de différent carreau. Un carreau consiste en une image et éventuellement d'un bord et d'un label. Width est la taille en pixel de chaque carreau individuel en direction horizontal et height la taille dans la direction verticale. Chaque carreau doit avoir un nombre égale de pixel en largeur et hauteur. Cependant, la largeur peut différer de la hauteur. X offset est la distance en pixel entre le bord vertical de l'image composée et le début de la ligne du premier carreau et y offset est la distance entre le bord horizontal et le début de la colonne du premier carreau.

Si la clé est définie, un répertoire de noms de carreau doit suivre l'en-tête de l'image. Le format du répertoire est expliqué plus bas.

  • page = value : taille et localisation préférée d'un canevas d'une image.
  • profile-icc = value : le nombre d'octets dans le profile International Color Consortium. Le

profile est défini par les spécification du profile ICC_1 .

  • red-primary = x,y
  • green-primary = x,y
  • blue-primary = x,y
  • white-point = x,y : Cette clé optionnelle reflète les primaires chromatiques et le point blanc.
  • rendering-intent = [saturation, perceptual, absolute, relative] : Rendering intent est la propriété CSS-1 qui a été définie par le Consortium de Couleur Internationale (ICC).
  • resolution = <x-resolution>x<y-resolution> : résolution verticale et horizontale de l'image. Voyez units pour

l'unité de la résolution (comme pixel par pouce).

  • rows = value : la hauteur de l'image en pixels. C'est une clé nécessaire et n'a pas de valeur par défaut.
  • scene = value : le numéro de la séquence pour les fichiers images MIFF. Cette clé optionnelle est utile quand un fichier image MIFF est un fichier dans une séquence de fichier pour une animation.
  • signature = value : Cette clé optionnelle contient une chaîne qui identifie d'une façon unique le contenu des pixels de l'image. L'algorithme SHA-256 de NIST est recommandé.
  • units = pixels-per-inch
  • units = pixels-per-centimeter : unité de la résolution de l'image.

D'autres pairs de clé sont permises. Si une valeur contient des espaces il doit être entouré d'accolades ({}) comme illustré ici :

  1. id=ImageMagick
  2. classseudoClass colors=256
  3. compression=RunlengthEncoded packets=27601
  4. columns=1280 rows=1024
  5. signature=d79e1c308aa5bbcdeea8ed63df412da9
  6. copyright={Copyright © 1999-2005 ImageMagick Studio LLC}
  7. :

Notez que les combinaisons clé = valeur peuvent être séparées par une nouvelle ligne ou des espaces et peut apparaître dans n'importe quel ordre dans l'en-tête. Les commentaires (entre accolades ({}))peuvent apparaître n'importe où avant les deux points.

Si vous définissez la clé de montage dans l'en-tête, faites suivre l'en-tête d'un répertoire de carreaux d'images. Le répertoire consiste en un nom pour chaque carreau de l'image composée séparé par un caractère de nouvelle ligne. La liste est terminée par un caractère NULL.

Si vous définissez la clé de profile de couleur dans l'en-tête, faites suivre l'en-tête (ou le répertoire de montage si la clé montage est dans l'en-tête) avec le profil de couleur binaire.

L'en-tête est séparé des données image par deux points (:) immédiatement suivie par une nouvelle ligne.

20.2 Donnée binaire MIFF

Puis les données binaires de l'image arrivent. La manière dont les données images sont formatées dépend de la classe de l'image définie (ou non) et de la valeur de la clé dans l'en-tête.

Les images DirectClass sont de ton continus, stocké comme des valeurs d'intensité RGB (red, green, blue), RGBA (red, green, blue, alpha), CMYK (cyan, yellow, magenta, black), or CMYKA (cyan, yellow, magenta, black, alpha) comme définie par la clé de l'espace de couleurs. Chaque valeur d'intensité est de 1 o de longueur pour les images de profondeur de 8 bites (0 à 255), deux octets pour une profondeur de 16 bites (0 à 65 535), et les images de profondeur à 32 bites (0 à 4 294 967 295) nécessite 4 bites dans l'ordre MSB.

Les images Pseudoclass sont des images RGB avec des cartes de couleurs. La carte de couleurs est stockées comme une série de valeurs de pixels rouge, vert, et bleu, chaque valeur étant d'une taille d'un octet. Si l'image a une profondeur de 16 bites, chaque entré de la carte de couleur consomme deux octets avec l'octet le plus significatif en premier. Le nombre d'entré de la carte de couleurs est définie par la clé colors. Les données de la carte de couleurs suivent immédiatement l'en-tête (ou le répertoire d'images si la clé montage se trouve dans l'en-tête). Les données de de l'image PseudoClass sont dans un tableau de valeur d'index dans la carte de couleurs. S'il y a 256 couleur ou moins dans l'image, chaque octet des données de l'image contient une valeur d'index. Si l'image contient plus de 256 couleurs ou que l'image a une profondeur de 16 bites, la valeur de l'index est stockée comme deux octets continus avec l'octet le plus significatif en premier. Si la clé matte est à true, chaque index de carte de couleur est suivi d'une valeur du canal alpha de 1 ou 2 octets.

Les données des pixels de l'image dans un fichier MIFF peut ne pas être compressé, encodage runlength, compressé en zip, ou en BZip. La clé compression dans l'en-tête définie comment les données de l'image sont compressées. Les pixels non compressés sont stockés une ligne après l'autre dans l'ordre des lignes. La compression Runlenght-encoded compte le nombre de pixels adjacent identique et les stocke suivis d'une longueur d'octet (l nombre de pixels identique moins un). Les compressions Zip et BZip compressent chaque ligne d'une image et et précède la ligne compressée de la longueur des octets des pixels compressés comme un mot avec l'octet le plus significatif en premier.

Les fichiers MIFF peuvent contenir plus d'une image. Simplement concaténez chaque image individuelle (composé de l'en-tête et des données de l'image). en un fichier.

Contact - Information et copyright - Statistique

Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki