<aid="bitmap-vector"name="bitmap-vector">Le bitmap di BeOS vs. le icone vettoriali di Haiku</a></h2>
<p>Contrariamente a BeOS, Haiku utilizza icone vettoriali al posto delle icone bitmap. È stato sviluppato uno speciale Formato di Icone Vettoriali per Haiku (HVIF) che è altamente ottimizzato per file di piccole dimensioni e per un rendering veloce. Ecco perché la maggior parte delle nostre icone sono <i>molto</i> più piccole di una bitmap o del più ampiamente usato formato SVG. Inoltre, a differenza delle icone bitmap di BeOS, Haiku non si limita a una tavolozza 8 bit (256 colori).<br/>
Prendete questa icona del terminale, ad esempio:</p>
<p>Notare che BeOS ha usato due versioni della stessa icona, una di 16x16 e l'altra di 32x32, per ottenere buone visualizzazioni in modalità lista e in modalità visuale icone.</p>
<p>Questo trucco non è necessario con icone vettoriali. Oltre ad occupare solo poche centinaia di byte in un file, le icone vettoriali scalano molto meglio di quelle bitmap. (Nota: BeOS offre solo una visualizzazione 16x16 e una 32x32.)</p>
<aid="icons-attributes"name="icons-attributes">Le icone sono attributi</a></h2>
<p>Le icone sono archiviate come un attributo con i loro file. Tuttavia, ciò non significa che ogni file deve avere questo attributo per apparire con un'icona in una finestra del Tracker: i file di dati ereditano la loro icona dal loro tipo di file. Per cambiare globalmente l'icona del tipo di file utilizzazre le preferenze dei <spanclass="app">FileType</span>. Se si vuole aggiungere soltanto un'icona speciale per un singolo file, si utilizza invece il <spanclass="app">FileType Add-On</span> su di essa. Vedere il documento <ahref="../filetypes.html">Filetypes</a> per maggiori informazioni.</p>
<divclass="box-info">Essendo un attributo, ne consegue che solo i filesystem che supportano i metadati possono conservare singola icona di un file. Quindi, se si spostano i file da un volume BFS, si consigli di comprimerli in modo da non perdere gli attributi delle icone o di altro tipo.</div>
<aid="i-o-m"name="i-o-m">Creare icone con Icon-O-Matic</a></h2>
<p>Icon-O-Matic è l'editor di icone di Haiku che può salvare il fle come HVIF, SVG o PNG. L'icona può anche essere collegata direttamente come attributo a un file esistente o esportata come file di risorse o come sorgente utilizzato dagli sviluppatori. Dato che l'applicazione è stata ottimizzata su misura per il formato HVIF, il suo uso riflette il funzionamento interno di questo formato.</p>
<p>Other than your normal vector graphics software, you don't deal with separate objects that each include all their specific properties like path, stroke width, stroke and fill color etc. Rather, you assemble your objects ("shapes") from shared paths and colors ("styles") and set certain properties. This re-using of elements is one secret of HVIF's efficiency. Although that imposes some constraints on the icon designer, there are a few advantages, too.<br/>
For example, by re-using a path, several objects can be modified together by manipulating this one path. Think of an object and its shadow. Modifying their shared path will change the object itself and automatically its (maybe slightly distorted/translated) shadow.</p>
<p>Per creare qualsiasi oggetto visibile nella finestra di disegno, è necessaria una forma con un percorso e uno stile. È possibile crearli comodamente tutti insieme o anche uno per volta dal menù <spanclass="menu">Shape</span>. Ogni tipo di oggetto (Percorso, Forma, Transformatore, e Stile) ha un menù sopra la propria lista degli elementi, che offrono vari comandi. Ogni elemento ha alcune opzioni che vengono impostate dal menù <spanclass="menu">Properties</span>.</p>
<p>Un percorso è costituito da diversi punti che sono collegati con linee e curve di Bezier. Per aggiungere o modificare i punti, assicurarsi che il percorso sia selezionato nella lista dei percorsi.</p>
<p>Basta cliccare sulla finestra di disegno per posizionare il primo punto. Nell'atto di posizionare un punto, si decide se la linea risultante sarà dritta o curva: basta cliccare una volta e rilasciare per una linea retta, oppure tenere premuto il tasto del mouse e muoverlo per trascinare le maniglie di una curva di Bezier. Naturalmente, sarà possibile effettuare modifiche in seguito.</p>
<p>To get from "A" to "B", you have to transform some points from corner-points to curve-points. That's done by holding <spanclass="key">ALT</span> while clicking on a point and dragging out the handles. This results in a symmetrical Bezier: the second handle follows the movement of the other. If you need to move the handles independently, again click&drag on a Bezier handle while holding <spanclass="key">ALT</span>.<br/>
Vice versa, to go from Bezier to a corner-point, hold <spanclass="key">ALT</span> and click on a point.</p>
<p>To move a point, simply click&drag it. To select more than one point, hold down <spanclass="key">SHIFT</span> and draw a selection rectangle. Selected points are marked with a red border instead of the usual black.<br/>
To insert a point into a path you click on the connecting line between two points.<br/>
Selected points are deleted by pressing <spanclass="key">DEL</span> or by clicking on any point while holding <spanclass="key">CTRL</span>.</p>
<tr><tdclass="onelinetop"><spanclass="menu">Select all</span></td><tdstyle="width:70px"><spanclass="key">ALT</span><spanclass="key">A</span></td><td>Seleziona tutti i punti del percorso corrente.</td></tr>
<tr><td><spanclass="menu">Transform</span></td><td><spanclass="key">T</span></td><td>Pone tutti i punti selezionati in una casella di trasformazione in modo da poterli muovere, ridimensionare o ruotare contemporaneamente. Funziona come per le forme, descritte più avanti.</td></tr>
<tr><td><spanclass="menu">Split</span></td><td></td><td>Divide i punti selezionati in due, uno sopra all'altro.</td></tr>
<tr><td><spanclass="menu">Flip</span></td><td></td><td>Ruota i punti selezionati di 180°. Applicabile solamente ai punti Bezier.</td></tr>
<tr><td><spanclass="menu">Remove</span></td><td><spanclass="key">DEL</span></td><td>Elimina i punti selezionati.</td></tr>
<p>Il menù <spanclass="menu">Path</span> offre poche ovvie voci per <spanclass="menu">Add Rectangle</span> e <spanclass="menu">Add Circle</span> o per <spanclass="menu">Duplicate</span> o <spanclass="menu">Remove</span> un percorso. Qui di seguito sono riportate quelle voci che potrebbero necessitare di qualche spiegazione in più:</p>
<tr><td><spanclass="menu">Reverse</span></td><tdstyle="width:15px;"></td><td>If your path isn't "closed" (see Path Properties below), a click into the canvas always creates a new point, connecting it with the last one. "Reverse" will reverse this order and your new point will connect to original start point instead.</td></tr>
<tr><td><spanclass="menu">Clean Up</span></td><td></td><td>Most useful with imported SVGs, this function will remove redundant points.</td></tr>
<tr><tdclass="onelinetop"><spanclass="menu">Rotate Indices Right</span></td><td><spanclass="key">ALT</span><spanclass="key">R</span></td><td>Practically, this rotates the opening of a path. It's best seen when using a not-closed path with a style and a shape with a stroke transformer. Now, if your path looks like a ⊂ it will rotate like this: ⊂ ∩ ⊃ ∪.</td></tr>
<tr><tdclass="onelinetop"><spanclass="menu">Rotate Indices Left</span></td><td><spanclass="key">ALT</span><spanclass="key">SHIFT</span><spanclass="key">R</span></td><td>Fa la stessa cosa nell'altra direzione.</td></tr>
<h4><aid="i-o-m-path-properties"name="i-o-m-path-properties">Proprietà del percorso</a></h4>
<p>Le <spanclass="menu">Properties</span> in basso a sinistra della finestra mostrano tutte le impostazioni disponibili per gli oggetti correntemente selezionati. Un percorso ne ha solo due: un <spanclass="menu">Name</span> e se è <spanclass="menu">Closed</span> o meno.</p>
<p>A shape groups together one or more paths with a style. Practically, it's the object that you'll actually see on the canvas. The grouping is done with the checkboxes in front of the paths and styles: Just select your shape and tick off the desired path(s) and a style.</p>
<p>A shape defines how a path and style is applied, e.g. if the object is filled or only stroked (which is done by using Transformers on the shape, we'll get to that later). Also, a shape can be moved, rotated or resized without touching the used path. That way, you can re-use a single path and get different, but related, shapes.</p>
<p>When a shape is selected from the list, a rectangle is drawn around it. Depending on where exactly you grab it, the shape is moved, resized or rotated around a point in its center, which itself can be moved. Holding <spanclass="key">SHIFT</span> will lock direction when moving, limit rotating to 45° angles and restrict the aspect ratio while resizing. The mouse pointer again indicates the current mode:</p>
<p>Shapes lie on top of each other, each is on its own layer, if you will. To reorder them you drag&drop their entry to a different position in the list.</p>
<p>The <spanclass="menu">Shape</span> menu offers the before mentioned possibility to <spanclass="menu">Add empty, with path/style/path & style</span> and to <spanclass="menu">Duplicate</span> or <spanclass="menu">Remove</span> a shape. Then, there is:</p>
<tr><td><spanclass="menu">Reset Transformation</span></td><tdstyle="width:15px;"></td><td>Reverts all the move, resize and rotate transformations you have applied to the shape.</td></tr>
<tr><tdclass="onelinetop"><spanclass="menu">Freeze Transformation</span></td><td></td><td>When you transform a shape, its assigned path(s) stay in their original position. This may be intended; maybe more than one shape is using that path, maybe you intentionally used <spanclass="menu">Options | Snap to grid</span> to set the points at precise pixel borders.<br/>
If not, "Freeze transformation" will apply the current shape transformation to the assigned path(s). A future "Reset Transformation" will then return to this new state.</td></tr>
<p>See how there are no numbers in the 16px version of the BeVexed icon? That's done with the "Level of Detail" setting of their shapes.<br/>
With the LOD you control the visibility of a shape depending on its size. That way, you can leave away details of an icon that look good on a bigger icon, but maybe not so much on its smaller version.</p>
<p>This is how it works: A LOD of 1.0 is defined as a 64px icon size. To get the LOD of a particular icon size you simply divide it by 64, e.g. a 16px icon has a LOD of 16/64 = 0.25. A shape won't be visible below its <spanclass="menu">Min LOD</span> and above its <spanclass="menu">Max LOD</span>.</p>
<p>So, if you set a shape's <spanclass="menu">Min LOD</span> to 0.0 and the <spanclass="menu">Max LOD</span> to 0.5, this means that the shape will only be visible for icon sizes smaller or <i>equal</i> to 32px. If you wanted to exclude the 32px icon size, you'd have to stay below 0.5, say 0.49.</p>
<p>The LOD is not only for leaving out detailing shapes, but also to e.g. change the stroke width at different sizes, if you feel that's needed. Simply duplicate a shape, make your changes and set both of their LOD settings to show either one or the other. Here lies the only source of potential confusion, when you unwittingly overlap LODs of shapes, and wonder why at some size both are visible...<br/>
For example, if Shape 1 were to be shown below 48px and Shape 2 from 48px upward (LOD: 48/64 = 0.75):</p>
<p>Uno stile può essere dato un colore pieno oppure da alcuni tipi di gradiente. <br/>
Oltre ai colori predefiniti sotto <spanclass="menu">Swatches</span>, è possibile crearne di propri facendo clic sul colore corrente. Inoltre, si faccia caso al cursore sotto lo spettro di colori, questo serve per impostare il canale alfa (trasparenza).</p>
<p>If you go for a gradient, you set the type (<spanclass="menu">Linear</span>, <spanclass="menu">Radial</span>, <spanclass="menu">Diamond</span>, <spanclass="menu">Cone</span>) and then define the start and end colors. This is done with a drag&drop from a color bucket into the respective color indicator under the gradient.<br/>
Of course you can move these indicators to change the gradient to your liking. You can also insert more indicators to add more colors by double-clicking into the gradient. Pressing <spanclass="key">DEL</span> removes the selected indicator.</p>
<p>You can move, resize and rotate the representing box of a gradient on the canvas until it fits your needs. This works just like with shapes.</p>
<p>The <spanclass="menu">Style</span> menu offers the usual entries to <spanclass="menu">Add</span>, <spanclass="menu">Duplicate</span> or <spanclass="menu">Remove</span> a style and to <spanclass="menu">Reset transformation</span>.</p>
<p>Besides a <spanclass="menu">Name</span> and the actual <spanclass="menu">Width</span> for the transformer, the <spanclass="menu">Properties</span> view has these (depending on its type slightly differing) options:</p>
<tr><td><spanclass="menu">Caps</span></td><tdstyle="width:15px;"></td><td><i>Stroke only</i>. Defines the end caps of a line: <spanclass="menu">Butt</span>, <spanclass="menu">Square</span> or <spanclass="menu">Round</span>.</td></tr>
<tr><td><spanclass="menu">Detect Orient.</span></td><td></td><td><i>Contour only</i>. Determines if the contour is to the inside or outside the path.</td></tr>
<tr><td><spanclass="menu">Joins</span></td><td></td><td>Defines how lines are joined at a point: <spanclass="menu">Miter</span>, <spanclass="menu">Round</span> or <spanclass="menu">Bevel</span>.</td></tr>
<tr><td><spanclass="menu">Miter Limit</span></td><td></td><td>Only when the above <spanclass="menu">Joins</span> is set to "Miter" this setting influences the looks of the miter joint. </td></tr>
<p>Anche qui in alto c'è la solita barra con <spanclass="menu">File</span>, <spanclass="menu">Edit</span>, <spanclass="menu">Options</span>. L'utilizzo è piuttosto intuitivo, pertanto si presterà attenzione soltanto a come salvare un lavoro.</p>
<p><spanclass="menu">File | Save as...</span> will save in a special Icon-O-Matic format that retains additional information like the names of paths, shapes and styles. These will be stripped from the actual icon once you export it to save space. It's a good idea to back-up your work like this, because without named objects everything's named "<path>/<shape>/<style>" which makes specific changes tedious.</p>
<li><p>Leggere le <ahref="https://www.haiku-os.org/development/icon-guidelines">Linee guida per le icone</a> per imparare quali sono le caratteristiche importanti per un'icona di Haiku, ad esempio la prospettiva, i colori e le ombre.</p></li>
<li><p>Bisognerebbe sempre tentare di non abusare dell'utilizzo dei percorsi che risultano essere piuttosto costosi in termini di dimensione dei file. Riutilizzare i percorsi ove possibile e lavorare con forme manipolate o con i loro trasformatori. Si può risparmiare spazio con un uso adeguato dei gradienti.</p></li>
<li><p>Wherever possible, you should activate Snap-to-Grid from the <spanclass="menu">Options</span> menu when editing paths. Path points that align with the 64x64 pixel grid use less storage space. You'll also get the crispest look if points are set on exact pixel borders. For example, it is important to align the most prominent outlines with the 16x16 grid.</p></li>
<li><p>Controllare l'anteprima per verificare che l'icona 16x16 si veda ancora bene. Volendo, è possibile utilizzare le impostazioni del <ahref="#i-o-m-shape-lod">Livello di dettaglio</a> descritte nella sezione delle Forme.</p></li>
<li><p>There's an easy way to produce letters, even if Icon-O-Matic doesn't provide such a tool. Just enter the text in a text editor such as StyledEdit, adjust font type and style, and drag&drop or copy&paste the selected text into Icon-O-Matic. This will create the according paths and shapes.</p></li>
<li><p>If you assign more than one path to a shape, their overlapping areas will cancel each other out. When one path is completely inside another, it practically creates a hole in the resulting shape.</p></li>
<li><p>You can zoom in and out of the canvas with the mouse wheel. Panning is done either by click&drag with the middle mouse button or with a normal left-click&drag while holding <spanclass="key">SPACE</span>.</p></li>
<p>The above is of course quite theoretical. The best way to learn using Icon-O-Matic is by experimenting. To get you started and once more show the basics, have a look at these short clips:</p>