[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


83. X: evoluzione nella gestione delle immagini

In questo capitolo si descrivono gli applicativi più recenti per la gestione delle immagini. La tabella 83.1 elenca i loro nomi.

Applicativo Descrizione
Gimp Disegno e fotoritocco.
Electric Eyes Visualizza e modifica i file di immagine.
ImageMagick Raccolta di programmi di gestione delle immagini.
Xanim Visualizza un'animazione.

Tabella 83.1: Alcuni programmi applicativi per la gestione delle immagini.

83.1 Gimp

Gimp è acronimo di Gnu Image Manipulation Program e si tratta proprio di questo: un programma di manipolazione delle immagini. È il programma di punta del gruppo di lavoro che si occupa di realizzare l'ambiente integrato Gnome. Si tratta di un programma di ottima qualità che consente il disegno normale e il ritocco delle immagini.

83.1.1 Avvio di Gimp

gimp [<opzioni>] [<file>...]

Gimp ha una filosofia simile a quella di XPaint: pur trattandosi di un programma interattivo, permette di eseguire alcune operazioni attraverso l'indicazione di opzioni della riga di comando. Se si indicano dei file, questi vengono caricati in altrettante finestre per il disegno o fotoritocco.

Gimp, come XPaint, utilizza una finestra di strumenti contenente un menu per le operazioni più importanti, quali il caricamento di altri file di immagini o la creazione di una nuova immagine, e una serie di icone che fanno riferimento ad altrettanti strumenti per il disegno.

A fianco della finestra degli attrezzi si collocano le finestre per il fotoritocco o per il disegno. Queste hanno un menu a cui si accede premendo il terzo tasto del mouse (quello destro), e a differenza di XPaint, non contengono la tavolozza di colori, che invece è incorporata nella finestra degli strumenti.

Gimp non aderisce più agli standard dei vecchi programmi che utilizzavano le prime librerie grafiche. Quindi, le opzioni tradizionali, come `-display', `-geometry',... non sono più valide.

Alcune opzioni

--display <schermo>

Permette di specificare le coordinate dello schermo su cui dovranno apparire le finestre di Gimp.

83.1.2 Finestra degli strumenti e della tavolozza

La figura 83.1 mostra la finestra degli strumenti di Gimp.

83.jpg

Figura 83.1: La finestra degli strumenti di Gimp.

Le varie icone rappresentano ognuna una modalità di disegno o di selezione sulle varie finestre di disegno. Il funzionamento del menu è abbastanza semplice, in particolare, il menu `File' permette di caricare una nuova immagine, oppure di aprire una nuova finestra vuota per il disegno.

83.1.3 Finestre di disegno

Gimp apre tante finestre di disegno quante sono le immagini da elaborare. La figura 83.2 ne mostra una all'interno della quale appare già un'immagine.

84.jpg

Figura 83.2: Gimp utilizza una finestra di disegno per ogni immagine.

Su queste finestre non si vede alcun menù, questo si ottiene premendo il terzo tasto del mouse. Come nel caso di XPaint, il controllo sullo strumento usato per disegnare è sempre fatto attraverso la finestra degli strumenti.

Come nel caso di XPaint, molte operazioni di fotoritocco che possono essere controllate dalla finestra di disegno si riferiscono (o possono riferirsi) a una zona selezionata precedentemente. Per ottenere questa selezione si utilizza l'apposita icona della finestra degli attrezzi.

La figura 83.3 mostra alcuni esempi di fotoritocco applicati a zone dell'immagine.

85.jpg

Figura 83.3: Alcuni esempi delle possibilità di fotoritocco di Gimp.

83.2 Electric Eyes

Electric Eyes è un altro degli applicativi grafici nati attorno a Gnome. Si tratta di un programma di visualizzazione delle immagini da usare al posto di Gimp quando si vuole qualcosa di più semplice e leggero. Eventualmente, Electric Eyes è in grado di apportare delle piccole modifiche alle immagini, che poi possono essere salvate anche in altri formati; si tratta di ingrandimenti e riduzioni, rotazioni, ribaltamenti speculari e correzioni del colore. È interessante la possibilità di catturare le immagini sullo schermo e anche quella di ritagliare facilmente delle porzioni da salvare a parte. Electric Eyes si compone di un solo eseguibile: `ee', o `eeyes', a seconda di come è stato predisposto da chi ha realizzato il pacchetto per la propria distribuzione GNU/Linux.

83.2.1 $ ee

ee [<file-da-visualizzare>...]

eeyes [<file-da-visualizzare>...]

`ee', oppure `eeyes', è l'eseguibile che compone Electric Eyes. Allo stato attuale riceve solo un tipo di argomento: i nomi dei file che si vogliono visualizzare. Se non viene indicato alcun file, si ottiene l'apertura della finestra di visualizzazione del programma con un'immagine di presentazione; se si indica un solo file, si ottiene la stessa finestra contenente l'immagine corrispondente a quel file (figura 83.4); se si indicano più file, si ottiene la visualizzazione della prima immagine e una finestra aggiuntiva con l'elenco dei file selezionati, ed eventualmente un'anteprima per ognuno (si vede nella figura 83.5).

86.jpg

Figura 83.4: Quando si avvia Electric Eyes con l'indicazione di un solo file, se ne ottiene la sua visualizzazione.

87.jpg

Figura 83.5: Quando si avvia Electric Eyes con l'indicazione di più file, si ottiene anche una finestra con l'elenco di questi per facilitarne lo scorrimento e la visualizzazione.

Attraverso il mouse, quando il puntatore si trova sopra la superficie dell'immagine visualizzata, se si preme il tasto destro si ottiene un menu a scomparsa, se si preme il tasto centrale si può delimitare un'area rettangolare che può servire per ridurre l'immagine alla sola selezione (crop).

Per il resto, il funzionamento di questo programma dovrebbe essere abbastanza intuitivo.

83.3 ImageMagick

ImageMagick è un pacchetto di programmi di utilità per la visualizzazione, la conversione e la manipolazione di immagini. La sua potenza sta proprio nella facilità con cui i programmi che lo compongono possono essere utilizzati in modo sistematico attraverso degli script.

I formati di immagine che possono gestire i programmi che compongono ImageMagick sono numerosi. Per conoscerne l'elenco completo basta leggere il documento convert(1).

83.3.1 Elementi comuni

Nell'uso dei programmi che compongono ImageMagick si incontrano situazioni comuni, che vengono regolate da opzioni che utilizzano la stessa sintassi. Anche se queste opzioni non sono necessariamente condivise da tutto l'insieme di questi programmi, vale la pena di descriverle a parte.

Alcune opzioni tipiche

-display <coordinate-del-display>

Si tratta di un'opzione convenzionale utilizzata da quasi tutti i programmi che funzionano con il sistema grafico X. Come al solito serve per specificare il servente grafico e lo schermo dove deve apparire la finestra dell'applicazione. Le coordinate hanno generalmente la sintassi `[<host>]:<servente>[.<schermo>]'.

-geometry [<larghezza>[%]x<altezza>[%]][+|-<posizione-orizz>][+|-<posizione-vert>][!]

Questa opzione si rifà a quella omonima utilizzata dai programmi comuni per X. Tuttavia utilizza una sintassi più ricca, che permette di indicare anche il ridimensionamento relativo delle immagini. Per comprenderne il senso, vale la pena di scomporre la sintassi:

  • -geometry <larghezza>x<altezza>[!]
    

    In questo caso si definisce la dimensione dell'immagine in punti. In condizioni normali le proporzioni vengono mantenute, riducendo automaticamente la larghezza o l'altezza, a meno che venga aggiunto un punto esclamativo finale con cui si impone la deformazione.

  • -geometry <larghezza>%x<altezza>%
    

    In questo caso si modificano le proporzioni dell'immagine indicando valori di larghezza e altezza percentuali: 100 indica la dimensione normale (100%).

  • -geometry [<dimensioni>][+|-<posizione-orizz>][+|-<posizione-vert>]
    

    Dopo le dimensioni (effettive o relative) si può indicare la posizione in cui deve apparire la finestra dell'immagine, secondo il modo normale utilizzato dalle applicazioni per X.

Questa opzione viene usata sia dai programmi che si occupano di visualizzare un'immagine, sia da quelli che si limitano a rielaborarla. Quando l'immagine non deve essere visualizzata non hanno senso le indicazioni che specificano la posizione della finestra sullo schermo.

-colors <n-colori>

In una trasformazione permette di indicare il numero massimo di colori contenuto nelle immagini.

-monochrome

Trasforma l'immagine in modo da utilizzare solo bianco e nero.

83.3.2 $ convert

convert [<opzioni>] <file-da-convertire>... <file-risultante>

`convert' permette di convertire i file di immagini in formati differenti, applicando eventualmente anche altre trasformazioni. Dalla sintassi si intende che i file indicati nella riga di comando come quelli da convertire possono essere più di uno, mentre quello da ottenere come risultato della trasformazione può essere uno solo. In questo modo, si intende ottenere un file contenente un'animazione (ammesso che il formato grafico prescelto lo consenta).

La conversione da un formato all'altro avviene in modo intuitivo, attraverso l'uso del magic number per i file da trasformare e delle estensioni per i file da generare; per esempio, volendo trasformare il file `prova.gif' in `prova.png', si intende implicitamente che il primo file sia di tipo GIF e il secondo di tipo PNG. Tuttavia, si può indicare espressamente il tipo di file utilizzando il formato seguente:

<tipo>:<nome>

Se il file in ingresso viene indicato attraverso un trattino (`-'), si intende fare riferimento allo standard input, mentre se viene usato un trattino al posto del nome di un file in uscita, si intende emettere il risultato della conversione attraverso lo standard output.

`convert' permette di eseguire una grande quantità di trasformazioni sulle immagini. Qui vengono descritte solo delle funzionalità elementari; per approfondire le caratteristiche di questo programma si può consultare la pagina di manuale convert(1).

Alcune opzioni

Di seguito vengono descritte solo alcune opzioni che possono essere utilizzate con `convert'. In particolare, quanto è già stato descritto tra le opzioni standard di ImageMagick vale anche per questo programma.

-delay <centesimi-di-secondo>

Questa opzione è utile solo nel caso si stia generando un'animazione GIF, per stabilire la durata di visualizzazione tra un'immagine e la successiva (è utile quando il file deve essere visualizzato attraverso Netscape).

-flip

Ribalta specularmente l'immagine in modo verticale.

-flop

Ribalta specularmente l'immagine in modo orizzontale.

-quality <n-livello>

Permette di stabilire il livello qualitativo di un'immagine che utilizza una compressione con perdita: JPEG, MIFF e PNG. Il valore zero rappresenta la qualità peggiore, mentre 100 rappresenta la qualità migliore. Il valore predefinito è 75.

-rotate <n-gradi>

Ruota l'immagine del numero di gradi indicato.

-sharpen <n-fattore>

Mette a fuoco l'immagine specificando il fattore che è un numero tra 0,0 e 99,9. Il valore più alto porta al massimo l'effetto di messa a fuoco.

Esempi

convert prova.gif prova.png

Converte il file `prova.gif' (presumibilmente di tipo GIF) nel file `prova.png' che si intende debba essere di tipo PNG a causa dell'estensione utilizzata nel nome.

convert prova.gif PNG:prova

Come nell'esempio precedente, si converte il file `prova.gif' nel file `prova', specificando esplicitamente che si deve trattare di un formato PNG.

convert prova.gif png:prova

Esattamente come nell'esempio precedente (il nome che identifica il tipo di file può essere indicato indifferentemente con le lettere maiuscole o minuscole).

convert -geometry 150%x150% prova.gif prova.png

Trasforma il file `prova.gif' nel file `prova.png' ingrandendo l'immagine del 150%, in modo proporzionale.

convert -sharpen 50 prova.gif prova.png

Trasforma il file `prova.gif' nel file `prova.png' rielaborandola in modo da ottenere un effetto simile alla messa a fuoco (viene utilizzato un fattore di 50).

convert -quality 100 prova.gif prova.png

Trasforma il file `prova.gif' nel file `prova.png' cercando di perdere il minor numero possibile di dettagli.

convert -flip prova.gif prova.png

Trasforma il file `prova.gif' nel file `prova.png' ottenuto ribaltando specularmente l'immagine in modo verticale (dall'alto in basso).

convert -flop prova.gif prova.png

Trasforma il file `prova.gif' nel file `prova.png' ottenuto ribaltando specularmente l'immagine in modo orizzontale (da sinistra a destra).

convert -rotate 90 prova.gif prova.png

Trasforma il file `prova.gif' nel file `prova.png' ottenuto ruotando l'immagine di 90 gradi in senso orario.

convert *.jpg prova.gif

Legge tutti i file che terminano con l'estensione `.jpg' e li utilizza per generare un'animazione GIF nel file `prova.gif'.

convert *.jpg prova.png

Tenta di fare la stessa cosa dell'esempio precedente, generando un file di tipo PNG. In pratica, dal momento che il formato PNG può contenere solo un'immagine, viene creata una sequenza di file PNG, uno per ogni «scena», secondo il formato `prova.png.n'.

83.3.3 $ mogrify

mogrify [<opzioni>] <file>...

`mogrify' è un programma di conversione delle immagini, simile a `convert', che però tende a intervenire direttamente sui file di origine, senza riflettersi in un file di destinazione. Molte delle opzioni di `convert' sono disponibili anche con `mogrify'.

Alcune opzioni particolari

-format <nome-formato>

Permette di definire la trasformazione in un formato differente da quello originale. Utilizzando questa opzione, le modifiche non si riflettono nel file di origine, ma in una copia che prende l'estensione del nome utilizzato per definire il formato.

Esempi

mogrify -format png *.gif

Converte i file che si trovano nella directory corrente e terminano con l'estensione `.gif' in file di tipo PNG, creando una copia degli stessi file con estensione `.png'.

mogrify -format PNG *.gif

Converte come nell'esempio precedente, con la differenza che l'estensione diventa `.PNG'.

mogrify -geometry 150%x150% *.gif

Trasforma i file il cui nome termina per `.gif', ingrandendoli proporzionalmente del 150%. I file originali vengono sovrascritti.

mogrify -colors 16 *.gif

Trasforma i file il cui nome termina per `.gif', rielaborando le immagini in modo da ridurre i colori a un massimo di 16.

mogrify -flip *.gif

Trasforma i file il cui nome termina per `.gif', ribaltando le immagini verticalmente (dall'alto in basso).

mogrify -flop *.gif

Trasforma i file il cui nome termina per `.gif', ribaltando le immagini orizzontalmente (da sinistra a destra).

83.3.4 $ animate

animate [<opzioni>] <file>...

`animate' visualizza un'animazione composta dai file forniti come argomento. Per ottenere questo risultato, `animate' costruisce una copia dell'insieme delle immagini nella memoria centrale; questo particolare è molto importante perché se si eccede si rischia di bloccare il sistema operativo.

Molte delle opzioni di `convert' sono disponibili anche con `animate'.

Alcune opzioni particolari

-delay <centesimi-di-secondo>

Questa opzione permette di definire la durata di visualizzazione tra un'immagine e la successiva.

Esempi

animate -delay 50 *.gif

Crea un'animazione con le immagini contenute nei file che terminano per `.gif'. La sequenza è fatta a intervalli di mezzo secondo.

83.3.5 $ montage

montage [<opzioni>] <file>... <file-risultante>

`montage' permette di assemblare una serie di immagini in modo da ottenere una sorta di raccolta di diapositive. In pratica si ottiene un'immagine contenente una serie di icone che riproducono in piccolo i file indicati in ingresso. Per esempio,

montage *.gif raccolta.png

genera il file `raccolta.png' (in formato PNG) composto da tutte le immagini ridotte dei file che terminano per `.gif'.

83.3.6 $ import

import [<opzioni>] <file-risultante>

`import' permette di generare un file catturando un'immagine dallo schermo. Se non si specificano opzioni particolari, si intende utilizzare lo schermo attuale; inoltre, il puntatore del mouse viene modificato in un mirino a forma di croce. Se si fa un clic con il primo tasto sull'area di una finestra, si ottiene la copia del contenuto di questa, se invece si preme il primo tasto e si trascina, si ottiene la copia dell'area evidenziata.

Alcune opzioni particolari

-window <n-finestra>|<nome-finestra>

Permette di specificare esplicitamente la finestra dalla quale prelevare l'immagine. In generale è poco probabile che venga inserito il numero di identificazione di una finestra, dal momento che si tratta di un numero esadecimale un po' lungo; per quanto riguarda la possibilità di indicare il nome, ci si limita normalmente a fare riferimento della finestra principale attraverso la denominazione `root'.

Esempi

import estratto.png

Avvia `import' in modo da permettere la selezione interattiva della finestra o dell'area desiderata. Il risultato viene salvato nel file `estratto.png'.

import -window 0x1400002 finestra.png

Fa una copia del contenuto della finestra identificata dal numero esadecimale 0x1400002.

import -window root finestra.png

Fa una copia del contenuto della finestra principale.

83.3.7 $ display

display [<opzioni>] [<file>]...

Il programma `display' permette la visualizzazione di una sequenza di immagini, eventualmente stabilendo anche un intervallo nella sequenza stessa. Tuttavia, `display' non si limita a questo, permettendo di intervenire anche in modo interattivo: basta fare un clic sull'area della finestra di visualizzazione dell'immagine per ottenere un menù. Per la precisione, con il tasto sinistro si ottiene una finestra di pulsanti che fanno riferimento ad altrettanti sottomenu, mentre con il tasto destro si ottiene un menu a scomparsa delle funzionalità di uso più frequente.

Questo programma può essere avviato anche senza argomenti, richiedendo implicitamente un funzionamento interattivo. In questo caso si ottiene subito la maschera che si vede nella figura 83.6.

88.jpg

Figura 83.6: Quando si avvia `display' senza l'indicazione di file da visualizzare, si viene invitati a indicarne almeno uno.

Una volta che `display' ha visualizzato un'immagine in una finestra, si può ottenere il menù rapido attraverso un clic con il terzo tasto del mouse. Ciò che si ottiene si vede nella figura 83.7.

89.jpg

Figura 83.7: Il menu rapido che si ottiene con il tasto destro del mouse.

Con il terzo tasto (quello centrale) si ottiene una finestra con un ingrandimento del punto selezionato, mentre con il primo tasto del mouse si ottiene una finestra contenente tutto il menù delle funzioni disponibili con questo programma (se viene ripremuto lo stesso tasto, il menu scompare).

90.jpg

Figura 83.8: Il menu normale.

Come nel caso degli altri programmi di ImageMagick, anche `display' permette di intervenire con una grande quantità di opzioni della riga di comando, anche se si può fare quasi tutto in modo interattivo.

Esempi

display

Avvia il programma `display' per essere usato esclusivamente in modo interattivo.

display prova.png

Visualizza l'immagine contenuta nel file `prova.png'.

display -delay 200 *.png

Inizia la visualizzazione delle immagini contenute in tutti i file il cui nome termina per `.png'. I file vengono caricati di volta in volta, senza impegnare la memoria centrale come farebbe invece il programma `animate'. Il caricamento delle immagini avviene a intervalli di due secondi.

display 'vid:*.png'

Avvia `display' in modo da visualizzare un elenco di «diapositive» generate utilizzando le immagini contenute nei file che finiscono per `.png'. Questo elenco di diapositive funge da menu per richiamare le immagini relative.

83.3.8 Note finali su ImageMagick

I programmi di ImageMagick sono molto sofisticati e in queste sezioni sono solo stati presentati in modo grossolano quelli più importanti. In particolare non è stato descritto `xtp' che sembra avere poco a che fare con il resto, trattandosi di un cliente FTP fatto per essere usato in modo non interattivo.

83.4 Xanim

Xanim è un programma, apparentemente molto semplice, che permette la visione e l'ascolto di file contenenti delle animazioni. I formati che può gestire sono molti; per citarne alcuni: FLI, GIF animati, AVI e Quicktime. Xanim (l'eseguibile `xanim') può essere usato molto bene in modo non interattivo attraverso l'uso delle opzioni fornite nella riga di comando, ma permette comunque una gestione intuitiva anche senza di queste. L'unico argomento obbligatorio è il nome del file che si vuole «eseguire». *1*

Per utilizzare bene Xanim è necessario leggere la pagina di manuale xanim(1).

83.4.1 $ xanim

xanim [<opzioni>] <file>...

Come accennato, `xanim' richiede espressamente l'indicazione di almeno un file di animazione da eseguire. Se vengono indicati più file, questi risultano uniti assieme in un'unica sequenza. Il controllo dell'esecuzione delle animazioni avviene normalmente attraverso un pannellino di controllo che si può vedere nella figura 83.9.

91.jpg

Figura 83.9: La finestra contenente il pannellino di controllo di Xanim.

Anche senza volere approfondire l'uso di questo programma, può essere conveniente conoscere almeno l'uso del mouse e di alcune funzionalità della tastiera durante l'esecuzione di un'animazione:

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


1.) Xanim non è software libero.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]