Index
Différences de format avec BeOS
Les icônes sont des attributs
Créer des icônes avec Icon-O-Matic
Chemin (Path)
Forme (Shape)
Style
Transformation (Transformer)
Enregistrer une icône
Trucs et astuces

icon-o-matic-icon_64.pngIcon-O-Matic

Deskbar :Applications
Localisation :/boot/system/apps/Icon-O-Matic
Réglages :~/config/settings/Icon-O-Matic


Avant de parler de la création d’icônes à l’aide d’Icon-O-Matic, voici quelques généralités sur les icônes de Haiku.

index Différences de format avec BeOS : Vectoriel contre matriciel

Contrairement à BeOS, Haiku utilise des icônes vectorielles et non matricielles (bitmap). Un format spécial, le HVIF (Haiku Vector Icon Format, Format d’Icône Vectoriel de Haiku), optimisé pour des tailles de fichiers réduites et un rendu rapide, a été spécifiquement développé pour cet usage. C’est pourquoi ces icônes sont bien plus économes en espace disque que les icônes matricielles ou vectorielles au format SVG utilisées par d’autre systèmes. De plus, contrairement à BeOS, les icônes ne sont pas limités à une palette de couleurs 8 bits (256 couleurs).
Prenez par exemple cette icône du Terminal :

MatricielSVGHVIF
i-o-m-terminal-bitmap32 i-o-m-terminal-bitmap16terminal-icon_32terminal-icon_32
1 024 octets
+ 256 octets
7 192 octets768 octets

Notez que BeOS utilisait deux versions de chaque icône, une en taille 16x16 et l’autre en taille 32x32, pour assurer une bonne représentation des icônes en mode liste, notamment.

Cette astuce n’est pas nécessaire avec les icônes vectoriels. En plus de prendre moins de place, ils peuvent être mis à l’échelle sans perte de qualité, contrairement aux icônes matricielles. (Note : BeOS ne permettait l’affichage qu’en 16x16 et 32x32.)

16x1632x3264x64128x128
Matriciel i-o-m-bitmap16 i-o-m-bitmap32 i-o-m-bitmap64 i-o-m-bitmap128
Vectoriel i-o-m-vector16 i-o-m-vector32 i-o-m-vector64 i-o-m-vector128

index Les icônes sont des attributs

Les icône sont stockés dans des attributs de fichiers. Toutefois, cela ne signifie pas que chaque fichier doit avoir cet attribut pour apparaître avec une icône dans une fenêtre du Tracker : Les icônes des fichiers de données sont déterminés depuis leur type de fichier. Pour changer globalement l’icône d’un type, vous pouvez utiliser les préférences FileTypes. Si vous voulez seulement ajouter une icône spéciale à un fichier en particulier, vous pouvez utiliser l’extension FileType. Voyez le sujet types de fichiers pour plus d’informations.

Etant donné qu’il s’agit d’un attribut, le fichier doit être enregistré sur un système de fichier supportant les méta-données afin de pouvoir conserver son icône spécifique. Par conséquent, avant de transférer vos données depuis votre volume BFS, vous devriez les compresser pour ne pas perdre vos icônes personnalisées ou autres attributs.

index Créer des icônes avec Icon-O-Matic

Icon-O-Matic est l’éditeur d’icônes de Haiku, et peut enregistrer votre travail aux formats HVIF, SVG ou PNG. L’icône peut également être attachée comme attribut à un fichier existant ou exportée comme ressource ou fichier source pour être utilisée par les développeurs. Comme cette application a été spécifiquement conçue pour le format HVIF, son fonctionnement reflète les caractéristiques de ce format.

Contrairement à d’autres programmes d’édition vectorielle, vous ne travaillez pas sur des objets séparés tous dotés de leurs caractéristiques individuelles (forme, taille de trait, couleur…). À la place, vous assemblez vos objets (« formes ») à l’aide de « chemins » et couleurs (« styles ») partagés et de quelques propriétés. Cette réutilisation des éléments est un point clé de l’efficacité de HVIF. Bien que cela impose quelques contraintes pour le dessinateur de l’icône, il y a également quelques avantages.
Par exemple, en réutilisant un chemin, plusieurs objets peuvent être modifiés en même temps en manipulant juste celui-ci. Par exemple : un objet et son ombre.

Voici un aperçu de la fenêtre d’Icon-O-Matic :

i-o-m-overview.png

Pour créer un objet visible sur le canevas, vous devez créer une forme (shape) à l’aide d’un chemin (path) et d’un style. Pour simplifier, vous pouvez créer un de ces éléments, deux, ou les trois à la fois à l’aide du menu Shape. Chaque type d’élément (chemin, forme, transformation, et style) possède un menu au dessus de sa liste d’éléments, offrant diverses commandes. Chaque élément possède certaines options qui peuvent se configurer dans la vue Properties.

index Chemin (Path)

Un chemin est constitué de plusieurs points reliés par des lignes ou des courbes de Bézier. Pour ajouter ou modifier des points, vérifiez d’abord que le chemin est sélectionné dans la liste des chemins.

Cliquez sur le canevas pour placer le premier point. Lorsque vous ajouterez un point, vous pourrez choisir si la ligne sera droite ou courbe : un clic simple produira une ligne droite, un clic maintenu suivi d’un déplacement de la souris permettra de déplacer les poignées (points de contrôle) de la courbe de Bézier. Bien sûr, vous pouvez aussi changer cela a posteriori.

i-o-m-path-ab

Pour passer de « A » à « B », vous devez transformer certains points d’extrémité de segment en extrémité de courbe. Ceci peut être réalisé en maintenant la touche ALT enfoncée lors du clic sur un point et en déplaçant les poignées. Ceci donne une courbe de Bézier symétrique : La seconde poignée suit le mouvement de la première. Si vous voulez déplacer les poignées de manière indépendante, cliquez sur une des poignées à nouveau en maintenant ALT. À l’inverse, vous pouvez passer de courbe de Bézier à segment en maintenant ALT et en cliquant sur un point.

Pour déplacer un point, effectuez un glisser-déposer. Pour sélectionner plus d’un point, maintenez MAJ enfoncée et dessinez un rectangle de sélection. Les points sélectionnés sont signalés par une bordure rouge au lieu de noire.
Pour insérer un point dans un chemin vous pouvez cliquer sur la ligne entre deux points.
Les points sléectionnés peuvent être supprimés en tapant SUPPR ou en cliquant sur n’importe quel point tout en maintenant enfoncée la touche CTRL.

Le curseur de la souris indique le mode actuel :

i-o-m-pointer-move-path i-o-m-pointer-insert i-o-m-pointer-add i-o-m-pointer-delete i-o-m-pointer-bezier i-o-m-pointer-select
Déplacer un/des point(s) Insérer un point Ajouter un point Supprimer un point
CTRL
Segmen ↔ Bézier
ALT
Sélectionner des points
MAJ

Vous pouvez obtenir un menu contextuel en effectuant un clic droit sur un point ou un groupe de points sélectionnés :

Select allALT ASélectionne tous les points du chemin actuel.
TransformTPlace les points sélectionnés dans une boîte de transformation, afin que vous puissez les déplacer, redimensionner et tourner ensemble. Ceci fonctionne comme pour les formes, décrites plus loin.
SplitDuplique chaque points sélectionnés, en plaçant la copie au dessus de l’original.
FlipEffectue une rotation de 180° des points sélectionnés. A uniquement un effet sur les points des courbes de Bézier.
RemoveSupprSupprime les points sélectionnés

Le menu Path (Chemin)

Le menu Path offre quelques options simples à comprendre, comme Add Rectangle (ajouter un rectangle), Add Circle (ajouter un cercle), Duplicate (dupliquer le chemin), Remove (supprimer le chemin). En voici quelques unes qui peuvent nécessiter une explication :

ReverseSi votre chemin n’est pas « fermé » (voyez les Propriétés de chemin ci-dessous), un clic sur le canevas créera toujours un nouveau point, en le connectant au point précédent. « Reverse » inversera cet ordre, et votre nouveau point se connectera au point de départ.
Clean UpSupprime les points redondants. Utile pour les fichiers SVG importés.
Rotate Indices RightALT REn pratique, ceci applique une rotation à l’ouverture d’un chemin. Cet effet se voit mieux avec un chemin ouvert auquel un style et une forme avec une transformation d’épaisseur. En pratique, si votre chemin ressemble à un ⊂, il tournera comme ceci : ⊂ ∩ ⊃ ∪.
Rotate Indices LeftALT MAJ RLa même chose dans l’autre direction.

Propriétés de chemin

La zone Properties en bas à gauche de la fenêtre offre tous les réglages possible de l’objet sélectionné. Un chemin n’en a que deux : Name (nom) et Closed (fermé).

index Forme (Shape)

Une forme regroupe un ou plusieurs chemins avec un style. En pratique, c’est l’objet que vous verrez sur le canevas. Le regroupage est effectué à l’aide des cases à cocher au niveau des chemins et des styles : Sélectionnez simplement votre forme et cochez le(s) chemin(s) et le style désirés.

Une forme définit la manière dont un chemin et un style sont appliqués, c’est à dire si l’objet est rempli ou juste un contour (ce qui est fait en utilisant une Transformation sur la forme, ce que nous verrons plus tard). Une forme peut être déplacée, tournée et redimensionnée sans toucher au chemin utilisé. De cette manière, vous pouvez réutiliser un chemin unique dans plusieurs formes similaires.

i-o-m-shape

Quand une forme est sélectionnée dans la liste, un rectangle est dessiné autour d’elle. En fonction de l’endroit où vous cliquez, la forme sera déplacée, redimensionnée, ou tournée autour de son centre, qui peut lui-même être déplacé. En maintenant MAJ enfoncée, la direction sera bloquée lors d’un déplacement, les angles seront contraints à 45° lors d’une rotation, et les proportions seront conservées lors d’un redimensionnement. Le curseur de la souris indique le mode actuel :

i-o-m- move-shape i-o-m-pointer-resize i-o-m-pointer-rotate i-o-m-pointer-move-rotation
Déplacer Redimensionner Rotation Déplacer le point
de rotation

Les formes sont placées l’une sur l’autre, sur leur propre calque en quelque sorte. Pour les réordonnez, effectuez des glisser-déposer dans leur liste.

Menu Shape (Forme)

Le menu Shape permet comme mentionné d’ajouter une forme vide (Add Empty), avec un chemin, style, chemin et style (Add With Path/Style/Path&Style), de dupliquer (Duplicate) ou de supprimer (Remove) une forme. De plus, il contient :

Reset TransformationAnnule toutes les opérations (déplacement, redimensionnement, rotation) que vous avez appliqué à la forme.
Freeze TransformationLorsque vous transformez une forme, les chemins associés restent à leur position d’origine. Ceci peut être utile : Le chemin peut être utilisé par plus d’une forme, ou peut-être que vous avez utilisé Options | Snap to Grid pour placer les points sur des bordures de pixels.
Dans le cas contraire, « Freeze Transformation » appliquera la transformation de forme actuelle au chemin assigné. Une option future « Reset Transformation » permettra de revenir à ce nouvel état.

Propriétés de formes

En plus du nom (Name), la vue Properties offre ces options pour une forme :

Min LODNiveau de détail minimum
Max LODNiveau de détail maximum
Niveau de détail (Level of Detail, LOD)
16x1632x3264x64
i-o-m-lod-icon_16 i-o-m-lod-icon_32 i-o-m-lod-icon_64

Voyez-vous que la version 16x16 de l’icône BeVexed n’affiche pas de chiffres ? Ceci est réalisé avec l’option « Niveau de détail » de leurs formes.
Grâce à ce réglage vous contrôlez la visibilité d’une forme en fonction de sa taille. De cette manière, vous pouvez masquer les détails d’une icône qui apparaissent bien en taille importante mais pas en petite taille.

Voici comment cela fonctionne : Un niveau de détail de 1.0 est défini à la taille 64x64. Pour obtenir le niveau de détail d’une taille inférieure, divisez celle-ci par 64; par exemple, une icône 16x16 aura un niveau de détail de 16/64 = 0.25. Une forme ne sera pas visible en dessous de son Min LOD et au dessus de son Max LOD.

Ainsi, si vous réglez Min LOD à 0.0 et Max LOD à 0.5, la forme ne sera visible que pour de tailles d’icône inférieures ou égales à 32 px. Si vous souhaitez exclure la taille 32 px, choisissez une valeur inférieure à 0.5, comme 0.49.

Le niveau de détail ne permet pas uniquement de supprimer des formes détailles, mais aussi par exemple de changer l’épaisseur de trait suivant la taille, si vous pensez que c’est nécessaire. Dupliquez simplement votre forme, effectuez vos changement et réglez leur valeurs LOD pour que l’une ou l’autre soit affichée. Voici une source de confusion potentielle, lorsque certaines valeurs LOD se recoupent et que vous vous demandez pourquoi les deux formes sont visibles à certaines tailles…
Par exemple, si la Forme 1 devait être visible en dessous de 48 px et la Forme 2 à partir de 48 px (LOD: 48/64 = 0.75) :

OKPas OK !
Forme 1Min LOD0.00Min LOD0.00
Max LOD0.74Max LOD0.75
Forme 2Min LOD0.75Min LOD0.75
Max LOD4.00Max LOD4.00

index Style

Un style peut être soit une couleur uniforme ou un dégradé d’un certain type.
En plus des couleurs prédéfinies dans la palette Swatches, vous pouvez créez vos propres mélanges en cliquant sur l’indicateur de couleur actuel. Notez également la barre de défilement sous le spectre des couleurs qui permet de régler le canal alpha (transparence).

i-o-m-gradients

Vous pouvez facilement créer un nouveau style en choisissant un couleur et en la glissant-déposant dans la liste des styles.

Si vous optez pour un dégradé, choisissez son type (Linear pour linéaire, Radial pour circulaire, Diamond pour carré, Cone pour conique) et choisir les couleurs de début et de fin. Ceci de fait en glissant-déposant des couleurs depuis la palette dans les indicateurs respectifs situés sous le dégradé.
Vous pouvez bien sûr déplacer ces indicateurs pour changer l’apparence du dégradé. Vous pouvez aussi insérer plus d’indicateurs afin d’ajouter des couleurs en double-cliquant sur le dégradé. Tapez SUPPR pour supprimer l’indicateur sélectionné.

Vous pouvez déplacer, redimensionner et pivoter la boîte représentant le dégradé sur le canevas jusqu’à ce qu’elle vous convienne. Le fonctionnement est similaire à celui des formes.

Menu Style

Le menu Style offre les options habituelles pour ajouter (Add), dupliquer (Duplicate) ou supprimer (Remove) un style, ou encore réinitialiser les tranformations (Reset Transformation).

Propriétés des styles

La propriété Name (nom) est la seule disponible pour les styles.

index Transformation (Transformer)

Une forme peut utiliser des Transformations (Transformers) pour changer d’apparence.

Menu d’ajout de transformations

ContourAjoute une bordure à une forme.
StrokeDessine le chemin d’une forme au lieu de le remplir avec un style.

Suivant la transformation que vous utilisez, vous pourrez définir différentes propriétés.

Propriétés des transformations

En plus du nom (Name) et de la largeur (Width) utilisée par la transformation, la zone des propriétés permet de définir ces options (avec quelques variantes suivant la transformation) :

CapsSeulement pour « Stroke ». Définit la forme des extrémités de ligne : Butt (pointe), Square (carré) ou Round (arrondi).
Detect Orient.Seulement pour « Contour ». Détermine si la bordure est à l’intérieur ou l’extérieur du chemin.
JoinsIndique comment les lignes sont jointes à un point : Miter (en biseau), Round (arrondi) ou Bevel (pente).
Miter LimitSeulement si l’option Joins est définie à « Miter ». Permet de régler l’apparence de la jointure en biseau.

index Enregistrer une icône

Les autres éléments de menu File, Edit, Options sont habituels. Nous allons donc nous intéresser aux spécificités de l’enregistrement de votre travail.

File | Save As... permet d’enregistrer dans le format spécial d’Icon-O-Matic qui enregistre des informations supplémentaires comme le nom des chemins, des formes et des styles. Celles-ci seront éliminées lors de l’enregistrement de l’icône finale pour gagner de la place. Il est donc préférable de sauvegarder votre travail à l’aide de cette option, car en l’absence d’objets nommés tout les éléments seront nommés « <path>/<shape>/<style> » qui rendent difficiles les modifications.

File | Export As... ouvre l’habituelle boîte de dialogue d’enregistrement, munie d’un menu de format de fichier, contenant ces choix :

HVIFHaiku Vector Icon Format
HVIF RDefEnregistrement en tant que fichier ressource. Utile pour les programmeurs.
HVIF Source CodeEnregistrement en tant que fichier de code source. Utile pour les programmeurs.
SVGEnregistrement au format SVG
PNGEnregistrement au format PNG, taille 64x64
PNG SetEnregistrement au format PNG, tailles 16x16, 32x32, 64x64
BEOS:ICON AttributeDéfinir l’attribut d’icône du fichier sélectionné
META:ICON AttributeAttacher l’icône à un fichier en tant que métadonnées

index Trucs et astuces

Voici quelques conseils que vous devriez avoir en tête lorsque vous travaillez avec Icon-O-Matic :