La prima cosa che si desidera fare quando si dispone di un ambiente grafico, quale è X Window System, è quella di poter disegnare e elaborare immagini. I programmi di questo tipo che appartengono al software libero sono pochi e forse un po' strani per quanto riguarda il loro utilizzo.
Questo capitolo introduce all'uso di questi programmi e anche a xv, che pur essendo shareware è comunque diffusissimo e praticamente presente in tutte le distribuzioni Linux.
Per preparare documentazione tecnica su applicativi per X Window System è indispensabile poter catturare delle immagini dallo schermo stesso. Generalmente, i programmi che permettono di fare questo hanno un limite: possono operare solo quando lo schermo gestisce una profondità di 8 bit (256 colori).
xwd [<opzioni>]
xwd permette di catturare delle immagini dallo schermo di X Window System. L'immagine ottenuta viene emessa attraverso lo standard output, di conseguenza, questo viene normalmente ridiretto o trattato attraverso una pipeline. Quando il programma viene avviato, appare immediatamente un cursore particolare e basta fare un clic sulla finestra che si intende catturare.
-
nobdrs
Non include i bordi della finestra.
-
frame
Include anche la cornice del gestore delle finestre.
-
out <file>
Permette di specificare un file di destinazione diverso dallo standard output.
-
root
Cattura tutta la schermata.
$
xwd > pippo
Avvia xwd in modo da catturare una immagine e di ottenere il file pippo come risultato.
$
xwd -
frame > pippo
Avvia xwd in modo da catturare una finestra completa di cornice. Come nell'esempio seguente, viene creato il file pippo.
xwud [<opzioni>]
xwud permette di visualizzare immagini generate con il programma xwd. L'immagine viene ottenuta dallo standard input e viene emessa in una finestra indipendente. L'utilità di xwud sta nella possibilità di controllare il contenuto dei file ottenuti con xwd prima di eventuali altri trattamenti.
$
xwd | xwud -
display pippo.zigozago.dg:0.0
Avvia xwd in modo da catturare una immagine e di passarla a xwud per la visualizzazione su un computer remoto.
xgrab
xgrab è un programma che, attraverso xgrabsc, permette la cattura di immagini in modo relativamente semplice. In pratica, il programma che compie il lavoro è xgrabsc, ma richiede l'uso di opzioni dettagliate, mentre xgrab funge da interfaccia a questo. Il vantaggio fondamentale nell'usare xgrab invece di xwd sta nell'intervallo di tempo lasciato a disposizione dal momento in cui si conferma l'azione che si vuole compiere al momento in cui si deve selezionare la zona da catturare. Ciò consente, per esempio, di richiamare una finestra in primo piano o di fare qualche altra piccola operazione. Un'altra particolarità importante di questo programma sta nella possibilità di scegliere il formato del file di destinazione.
xgrab non è parte dei programmi di utilità standard di X Window System, ma è comunque facilmente raggiungibile attraverso la rete.
xloadimage è un programma per la gestione di immagini, semplice ma efficace. Il nome suggerisce che possa servire per caricare, e quindi visualizzare, delle immagini, ma in più permette di trasformare un'immagine in un formato differente e di modificare alcune regolazioni essenziali.
Non si tratta quindi di un programma completo per la gestione ed il ritocco di immagini, ma le funzioni che mette a disposizione sono molto importanti.
xloadimage [<opzioni-globali>] {[<opzioni-dell'immagine>] <immagine>]}...
xloadimage [<opzioni-globali>] [<opzioni-dell'immagine>] stdin
xloadimage prevede due tipi di opzioni: globali e particolari. Le prime devono apparire nella prima parte degli argomenti della riga di comando, mentre le altre precedono l'indicazione dell'immagine a cui si riferiscono. Le opzioni particolari vanno quindi messe davanti al nome di ogni immagine che si intente trattare (sempre che ce ne sia bisogno). Eventualmente, è possibile fare in modo che xloadimage utilizzi lo standard input, per questo si deve utilizzare il nome stdin al posto dell'indicazione di un'immagine.
xloadimage ha due pseudonimi: xsetbg e xview.
Il primo equivale a xloadimage -
onroot -
quiet mentre il
secondo equivale a xloadimage -
view -
verbose.
Quando xloadimage viene utilizzato per visualizzare un gruppo di immagini, è possibile usare alcuni tasti per passare da un'immagine all'altra e per terminare l'esecuzione:
Le opzioni globali hanno effetto su tutte le immagini su cui si opera. Data la loro funzione è opportuno che siano collocate prima dell'indicazione delle opzioni particolari, e comunque prima dei file.
-
fullscreen
Utilizza tutto lo schermo per visualizzare ogni immagine.
-
geometry <geometria>
Questa opzione funziona nel modo solito: determina le dimensioni della finestra.
-
onroot
Colloca l'immagine nella finestra di root, utilizzandola come fondale. Quando xloadimage viene avviato con lo pseudonimo xsetbg, questa opzione è predefinita.
-
view
Visualizza le immagini in una finestra, invece che utilizzare la finestra root. Questa opzione è attiva in modo predefinito nel caso il programma venga avviato con il suo nome o anche con lo pseudonimo xview.
-
border <colore>
Definisce il colore di fondo delle zone che non sono coperte dall'immagine da visualizzare.
-
visual <tipo-visualizzazione>
Permette di specificare in modo esplicito il tipo di visualizzazione desiderato. I tipi disponibili sono: DirectColor, TrueColor, PseudoColor, StaticColor, GrayScale, StaticGray.
-
dump <formato>[,<opzione-di-formato>] <file-da-generare>
Permette di generare un file contenente l'immagine nel formato specificato. Le opzioni di formato dipendono dal tipo di questo, e possono esserne indicate diverse, separandole con una virgola (senza spazi). A seconda del tipo di formato di immagine e del tipo di opzione, potrebbe essere necessario aggiungere un attributo a questa, nella forma <opzione>=<valore>. La tabella (tabella) mostra i tipi di formato leggibili e quelli in cui è possibile salvare.
-
type <tipo-immagine>
Forza xloadimage ad utilizzare un determinato formato per caricare un'immagine. Normalmente è il programma stesso a determinare autonomamente di quale tipo si tratti
-
configuration
Mostra la configurazione di xloadimage. La configurazione viene descritta più avanti.
-
supported
Emette, attraverso lo standard output, un elenco di formati di immagini gestiti.
-
help [<opzione>...]
Permette di ottenere informazioni su una o più opzioni specificate. Se non ne vengono indicate, inizia una modalità interattiva, attraverso la quale è possibile ottenere brevi guide alle opzioni indicate durante tale sessione.
-
identify
Invece di visualizzare le immagini, si ottiene solo la loro identificazione, con una serie di messaggi emessi attraverso lo standard output.
-
delay <secondi>
Determina una durata di permanenza di ogni immagine. Serve per permettere uno scorrimento automatico delle immagini indicate come argomento, come una sequenza di diapositive. Senza l'indicazione di questo valore, è l'utente che deve agire per visualizzare l'immagine successiva.
-
fork
Fa in modo di dissociare xloadimage dalla shell dalla quale è stato eseguito. In pratica, con questa opzione, il programma diventa un processo figlio di init indipendente dalla shell che lo ha generato.
-
verbose
Fa in modo che xloadimage dia delle informazioni, attraverso lo standard output, sulle caratteristiche dell'immagine. Questa opzione è attiva in modo predefinito nel caso il programma venga avviato con il suo nome o anche con lo pseudonimo xview.
$
xloadimage -
onroot fondale.jpg
Carica l'immagine fondale.jpg e la colloca sulla finestra root, cioè sul fondo.
$
xloadimage -
dump jpeg,quality=50 prova.jpg immagine.gif
Carica l'immagine immagine.gif e la salva in formato JPEG, con il nome prova.jpg, riducendo la sua qualità.
Le opzioni particolari hanno effetto solo sull'immagine che precedono.
Alcune opzioni particolari possono essere generalizzate, cioè riferite a più immagini,
attraverso l'opzione -
global.
-
global
Inizia una serie di opzioni (seguenti) riferite a tutte le immagini che seguono,
eventualmente fino al raggiungimento di un'opzione -
newoptions.
Eventuali opzioni particolari inserite davanti ad una particolare immagine, possono
servire per alterare temporaneamente queste impostazioni globali.
-
newoptions
Azzera le opzioni fissate globalmente.
Le immagini monocromatiche (due colori) possono essere alterate in modo da sostituire il nero e il bianco con un altro colore.
-
background <colore>
Con questa opzione si sostituisce il bianco delle immagini monocromatiche.
-
foreground <colore>
Con questa opzione si sostituisce il nero delle immagini monocromatiche.
-
invert
Inverte i colori di una immagine monocromatica.
-
brighten <percentuale-luminosità>
Permette di definire la percentuale della luminosità dell'immagine. 100 equivale a lasciare inalterata l'immagine.
-
colors <numero-colori>
Permette di fissare il numero massimo di colori. È un mezzo per ridurre i colori di un'immagine.
-
halftone
Trasforma l'immagine in una monocromatica (due colori) utilizzando una tecnica molto semplice, che di solito espande notevolmente l'immagine.
-
dither
Trasforma l'immagine in una monocromatica (due colori) utilizzando l'algoritmo
Floyd-Steinberg che offre un effetto decisamente migliore di quanto si ottiene con
l'opzione -
halftone.
-
gamma <valore>
Permette di effettuare una correzione di gamma in funzione delle caratteristiche del monitor che si utilizza. Il valore predefinito, quando questa opzione non viene utilizzata, è 1.0, mentre un monitor tipico può richiedere valori da 2.0 a 2.5.
-
gray | -
grey
Converte un'immagine in scala di grigi.
-
smooth
Ammorbidisce l'immagine, un po' come se fosse sfuocata. Serve in particolare per addolcire l'effetto che si ottiene quando un'immagine viene ingrandita. Questa opzione può essere indicata più volte in modo da ottenere più passaggi.
-
clip x,y,<larghezza>,<altezza>
Preleva solo una porzione dell'immagine. Si parte dalle coordinate x,y e da lì si preleva un rettangolo della larghezza e altezza indicati (verso destra e verso il basso). Se la larghezza e/o l'altezza sono lasciati a zero, si intende tutta l'estensione rimanente dell'immagine.
-
at x,y
Questa opzione è particolarmente riferita a un'immagine successiva alla prima. La prima immagine viene indicata come immagine ``base'' e su di essa è possibile sovrapporne un'altra a partire dalla posizione indicata dalle coordinate di questa opzione.
-
merge
Permette di fondere l'immagine, dopo una eventuale rielaborazione, sull'immagine
base.
Questa opzione viene normalmente utilizzata in combinazione a
-
at e -
clip.
-
rotate <gradi>
Ruota l'immagine della quantità di gradi indicata. Si possono utilizzare solo multipli di 90.
-
zoom <percentuale>
Ridimensiona l'immagine della percentuale indicata. Il valore 100 rappresenta la dimensione normale.
-
xzoom <percentuale>
Ridimensiona l'immagine in orizzontale: la allarga o la stringe.
-
yzoom <percentuale>
Ridimensiona l'immagine in verticale: la allunga o la accorcia.
$
xloadimage -
zoom 200 esempio.jpg
Carica l'immagine esempio.jpg, ingrandendola al doppio della sua dimensione originale (200%).
$
xloadimage pippo.jpg -
merge -
at 50,50 -
clip 50,50,100,100 -
brighten 150 pippo.jpg
Carica l'immagine pippo.jpg, quindi carica nuovamente una parte della stessa immagine e, dopo averla schiarita, la fonde con la versione caricata precedentemente, nella stessa posizione di partenza del pezzetto ritagliato. In pratica, si ottiene di schiarire un'area dell'immagine originale.
Quando si utilizza l'opzione -
dump, si può specificare il tipo di
immagine che si vuole ottenere.
Oltre al tipo, a volte è possibile, o necessario, indicare degli argomenti ulteriori,
dal momento che molti formati gestiscono diverse modalità.
Sotto questo aspetto, un formato viene definito con la sintassi seguente.
<formato>[,<opzione-di-formato>[=<valore>]] <file-da-generare>
aritmetic
Codifica aritmetica.
grayscale
Trasforma un'immagine a colori in una a scala di grigi.
nointerleave
Crea un file non-interleaved.
entropy
Abilita l'ottimizzazione del parametro entropy
quality=<percentuale-qualità>
Regola la qualità dell'immagine da creare. Il valore predefinito è 75; valori inferiori creano immagini più povere.
smooth=<fattore-di-smooth>
Permette di regolare il fattore di smooth. Sono ammissibili tutti i valori da 0 a 100, estremi inclusi.
normal
Utilizza il formato normale.
raw
Utilizza il formato RawBit. È la modalità predefinita quando si utilizza il tipo BPM.
compression=<tipo-di-compressione>
Il tipo di compressione può essere uno dei seguenti:
Per facilitare l'utilizzo di questo programma è possibile definire una configurazione personalizzata attraverso il file ~/.xloadimagerc. Nello stesso modo può essere predisposto un file di configurazione globale per tutto il sistema: /usr/X11R6/lib/X11/Xloadimage.
All'interno di questi file possono essere indicati tre tipi di informazione: path, extention e filter.
---------
path = <percorso-di-ricerca> ...
Con questa dichiarazione può essere indicato un elenco di percorsi all'interno dei quali possono essere cercati i file delle immagini. L'elenco è formato dai vari percorsi separati da uno o più spazi, tabulazioni o newline.
extention = <estensione> ...
Permette di indicare una serie di estensioni possibili da aggiungere ai nomi delle immagini per ottenere la corrispondenza con i nomi dei file. I file vengono cercati tentando le varie estensioni, nell'ordine in cui sono. L'elenco di estensioni è separato attraverso uno o più spazi, tabulazioni o newline.
filter = <programma> <estensione>
Specifica il programma attraverso il quale deve essere filtrato il file dell'immagine se questo termina con l'estensione indicata. Questo permette di accedere facilmente a file compressi. Le estensioni .Z e .gz sono già riconosciute e trattate correttamente attraverso il programma adatto.
Se qualche elemento contiene spazi, si possono utilizzare i doppi apici per evitare che questi spazi vengano interpretati come una separazione, ovvero l'inizio di un altro valore. Si può utilizzare la barra inclinata rovescia (\) per poter includere i doppi apici tra i caratteri normali e per permettere la continuazione, quando questa barra precede il carattere newline.
Il simbolo num permette di indicare l'inizio di un commento.
# Percorsi da scandire alla ricerca di file di immagini
path = /usr/local/immagini
~/immagini
# Estensioni predefinite
extention = .gif .jpg
# Utilizza gzip se vengono trovate estensioni .gz .z .zip
filter = "gzip -cd" .gz .z .zip
XV è un applicativo shareware anche se abbastanza permissivo, per la elaborazione di immagini (appendice `Licenza XV'). È relativamente completo, nel senso che consente di effettuare un buon numero di operazioni e trasformazioni. Il suo funzionamento è un po' insolito e le prime volte possono sfuggire molte delle sue buone qualità.
xv [<opzioni>] [<file>... ]
xv è un programma interattivo e solitamente non viene usata alcuna opzione e nemmeno alcun nome di file. Quello che si ottiene è una finestra di presentazione sulla quale basta portare il cursore e fare un clic con il terzo tasto per ottenere il pannello di controllo del programma.
La finestra che contiene questa immagine di presentazione è quella utilizzata per mostrare le immagini che si elaborano, o che semplicemente si vogliono visualizzare.
xv potrebbe essere utilizzato anche solo come mezzo per visualizzare delle immagini. In tal caso, indicando i nomi dei file nella riga di comando, si ottiene la visualizzazione del primo nella finestra iniziale, e alcune semplici operazioni possono essere compiute semplicemente attraverso l'uso della tastiera.
La tabella (seguente) elenca i comandi che possono essere impartiti attraverso la tastiera, per il semplice scorrimento delle immagini.
Come accennato precedentemente, portando il cursore del mouse sull'immagine e premendo il terzo tasto, appare il pannello di controllo di xv. La parte centrale di questo mostra un elenco di file di immagini. Questo potrebbe essere vuoto se il programma è stato avviato senza argomenti, come nel caso mostrato nella figura (seguente).
Tutto attorno a questa zona centrale, appaiono una serie di tasti che permettono di accedere a menu nascosti oppure eseguono subito delle funzioni particolari.
I tasti posti alla destra dell'elenco di file sono particolarmente importanti. La figura (seguente) mostra un elenco di immagini e i tasti di cui si parla.
La tabella (seguente) elenca le funzioni riferite a questi tasti.
Nella parte inferiore del pannello di controllo appaiono alcuni tasti con significati che possono apparire più o meno oscuri, fino a quando non si è appreso il loro funzionamento. La figura (seguente) mostra questa serie di tasti.
I tasti che non possono essere utilizzati, in funzione del contesto, sono ofuscati. Molte di queste funzioni fanno riferimento ad una zona dell'immagine selezionata. Questa zona può essere definita utilizzando il mouse, puntando il cursore su un punto nella finestra contenente l'immagine, premendo il primo tasto e trascinando.
I tasti della prima fila sono particolarmente importanti:
Per riprodurre una zona precedentemente copiata o tagliata, è necessario prima selezionare l'immagine su cui intervenire (potrebbe essere la stessa di origine). Quindi occorre selezionare la zona di destinazione, nel solito modo, attraverso un'operazione di trascinamento del mouse. Per facilitare tutto questo si può usare lo stesso tasto di riproduzione della zona ritagliata: la prima volta che viene richiamato evidenzia un rettangolo nell'immagine attuale che può essere spostato dove serve, trascinandolo con il mouse; la seconda volta che viene richiamato incolla il ritaglio in quel punto.
Quando di un'immagine serve solo una parte, basta selezionare la zona nel solito modo, attraverso il mouse. Quindi, utilizzando il tasto Crop si ottiene una nuova immagine contenente solo il pezzo precedentemente selezionato. Eventualmente, si può evitare questo metodo utilizzando al suo posto il salvataggio della sola zona selezionata.
Un'altra funzionalità importante racchiusa in questa parte del pannello di controllo è il tasto Grab. Attraverso questo è possibile catturare una finestra o una zona dello schermo. A differenza dei programmi già visti per questo tipo di attività, xv funziona anche quando la visualizzazione del server X supera i fatidici 8 bpp (256 colori).
Nella parte superiore del pannello di controllo appaiono alcuni tasti che in realtà fanno richiamano diversi menu.
possono apparire più o meno oscuri, fino a quando non si è appreso il loro funzionamento. Il manuale di xv è il punto di riferimento migliore per apprendere l'uso di queste funzioni. La figura (seguente) mostra questo sistema di menu.
In particolare, con il tasto Windows è possibile selezionare un menu contenente un po' di tutto. Attraverso la funzione Visual Schnauzer si ottiene un file manager per la ricerca e la visualizzazione in anteprima delle immagini da caricare. La figura (seguente) mostra l'aspetto di questo file manager.
xpaint è un programma per il disegno ed il fotoritocco, di buona qualità. A prima vista potrebbe non sembrarlo, ma quando si apprende la logica del suo funzionamento si scopre il suo valore. Alcune limitazioni di questo programma possono essere accettate se si considera che si tratta di software libero, al contrario di xv appena descritto nelle sezioni precedenti.
xpaint dipende dalle caratteristiche dello schermo, ovvero dalla profondità di colori gestiti nel momento in cui lo si utilizza. Se per ipotesi venisse utilizzato su uno schermo configurato per gestire esclusivamente i grigi, si potrebbero salvare solo immagini in scala di grigi. Questo significa che l'elaborazione di immagini di qualità superiore a quanto visualizzabile sullo schermo comporta una perdita di qualità.
xpaint [<opzioni>] [<file>... ]
xpaint è un programma interattivo e solitamente non viene usata alcuna opzione e nemmeno alcun nome di file. Se si indicano dei file, questi vengono caricati in altrettante finestre per il disegno o fotoritocco.
xpaint utilizza una finestra di ``attrezzi'' 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. Ognuna ha una propria tavolozza di colori. Sono consentite le operazioni di taglia-incolla tra finestre differenti.
-
size <larghezza>x<altezza>
Permette di definire la dimensione predefinita per la creazione di finestre vuote per il disegno.
-
rcFile <file>
Definisce il nome e la collocazione di un file di configurazione diverso da quello predefinito, che altrimenti è ~/.XPaintrc.
-
popped
Prepara una finestra vuota per il disegno all'avvio, senza bisogno di doverla richiedere espressamente durante il funzionamento del programma.
-
nowarn
Senza utilizzare questa opzione, il programma avvisa ogni volta, attraverso lo standard error della possibile perdita di informazioni quando si elaborano immagini con schermi di limitate capacità. In pratica, con questa opzione, si vuole evitare di vedere ogni volta il messaggio seguente.
XPaint uses the native display format for storing image info while editing;
the original image information is thrown away. This means that, in general,
color information is irretrievably lost when using any display depth less
than 24 bits.
More specifically, for depths less than 8 bits, both 24-bit (true-color) and
8-bit (palette) images will be reduced to the display depth; for 8-bit
displays, standard color-mapped images are safe but 12-bit color-mapped and
24-bit true-color images will lose color information; for 15- and 16-bit
displays (typically RGB 555 and 565, respectively), in general both 8-bit
and 24-bit images will suffer data loss; and for 24- or 32-bit displays,
only very deep images such as 16-bit grayscale or 48-bit true-color will
lose data.
Also note that any ancillary information associated with the original image
(embedded comments, time stamp, copyright, etc.) will always be lost.
Your display depth is 8 bits.
=============================================================
WARNING! Most true-color images will suffer major data loss!
=============================================================
XPaint.patternsize: <pixel>
Permette di definire la dimensione in pixel dei quadratini colorati che compongono la tavolozza dei colori di ogni finestra di disegno. Le dimensioni possibili vanno da 4 a 64 pixel, mentre il valore predefinito è 24.
$
xpaint sole.jpg
Carica il file sole.jpg in una finestra per il disegno.
$
xpaint -
xrm '
XPaint.patternsize: 10'
Avvia il programma modificando la risorsa XPaint.patternsize in modo da avere una tavolozza dei colori un po' più compatta del solito.
La figura (seguente) mostra la finestra principale di xpaint.
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. Si noti in particolare la presenza del menu Help dal quale si accede ad una guida interna ben organizzata.
xpaint apre tante finestre di disegno quante sono le immagini da elaborare. La figura (seguente) ne mostra una all'interno della quale appare già un'immagine.
Nella parte inferiore ci sono due tavolozze di colori e modelli: la prima riguarda normalmente il tratto, la seconda riguarda normalmente il fondale. Per esempio, se dalla finestra degli attrezzi si seleziona l'icona del rettangolo pieno, quando si disegna, il contorno del rettangolo utilizza il primo colore o modello, mentre il contenuto utilizza il secondo. Alla tavolozza possono essere aggiunti nuovi colori (solid) o modelli (pattern).
Ciò che è importante da ricordare è che il controllo sullo strumento usato per disegnare è sempre fatto attraverso la finestra degli attrezzi.
L'uso del menu è abbastanza intuitivo. In particolare, File permette solo di salvare (il caricamento è a carico della finestra degli attrezzi). Salvando è possibile cambiare formato e/o salvare solo una porzione selezionata dell'immagine.
Molte operazioni di fotoritocco che possono essere controllate dalla finestra di disegno si riferiscono (o possono riferirsi) ad una zona rettangolare precedentemente selezionata. Per ottenere questa selezione si utilizza l'apposita icona (quella del ritaglio rettangolare) della finestra degli attrezzi.
<!> Se si applicano delle alterazioni all'immagine intera, potrebbe capitare di non vederne il risultato. Si può provare a ridurre a icona la finestra e a ripristinarla: dovrebbe funzionare.
La figura (seguente) mostra alcuni esempi di fotoritocco applicati a zone dell'immagine.
Il sistema di annullamento delle azioni (undo) è a più livelli e regolabile, a volte però potrebbe capitare di non vedere la reazione sull'immagine. È sempre bene provare a ridurre la finestra ad icona e poi a ripristinarla per verificare l'esatta situazione dell'immagine.
1997.10.26 - Scritto da Daniele Giacomini daniele@calion.com (vedi copyright: Appunti Linux).