Differenze tra le versioni di "Struttura del formato XPM"

Da Gambas-it.org - Wikipedia.
 
(8 versioni intermedie di uno stesso utente non sono mostrate)
Riga 4: Riga 4:
 
  /* XPM */
 
  /* XPM */
 
  static char* <nome_variabile>[] = {
 
  static char* <nome_variabile>[] = {
  <Values>
+
  "<Values>",
  <Colors>
+
  "<Colors>",
  <Pixels>
+
  "<Pixels>",
 
  };
 
  };
I dati presenti nelle sezioni relative a <Values>, <Colors>, <Pixels> e <Extensions> sono racchiuse fra virgolette e terminano con una virgola. Ogni sezione è posta in una nuova riga a capo.
+
I dati presenti nelle sezioni relative a <Values>, <Colors> e <Pixels> sono racchiuse fra virgolette e terminano con una virgola. Ogni sezione è posta in una nuova riga a capo.
  
  
Riga 29: Riga 29:
 
  ". c green",
 
  ". c green",
 
  "  c #0000FF",
 
  "  c #0000FF",
 
  
 
====Trasparenza====
 
====Trasparenza====
Come detto all'inizio, il formato ''XPM'' supporta anche la trasparenza. Va indicata con la parola ''None''.
+
Come detto all'inizio, il formato ''XPM'' supporta anche la trasparenza. Va indicata con la parola ''None'' al posto del nome o del codice del colore.
 
<BR>Esempio:
 
<BR>Esempio:
 
  "a c None",
 
  "a c None",
Riga 48: Riga 47:
 
  ".b a",
 
  ".b a",
 
  "ab. ",
 
  "ab. ",
 +
 +
 +
===Chiusura===
 +
Il file è chiuso semplicemente con una parentesi graffa ed un segno di punto e virgola:
 +
};
 +
 +
 +
===Esempio pratico===
 +
Mostreremo di seguito il codice necessario ed essenziale per creare una piccola immagine di otto colonne rosse e gialle (8 x 8 pixel):  |[[#Note|2]]|
 +
/* XPM */
 +
static char * esempio[]={
 +
"8 8 2 1",
 +
"a c #FF0000",
 +
"b c #FFFF00",
 +
"abababab",
 +
"abababab",
 +
"abababab",
 +
"abababab",
 +
"abababab",
 +
"abababab",
 +
"abababab",
 +
"abababab",
 +
};
  
  
Riga 53: Riga 75:
 
=Note=
 
=Note=
 
[1] E' prevista anche una parte ''Extensions'' che però è opzionale, e qui non verrà trattata.
 
[1] E' prevista anche una parte ''Extensions'' che però è opzionale, e qui non verrà trattata.
 +
 +
[2] Per una possibile gestione con Gambas si rimanda a [[Creare_da_codice_un'immagine_trasparente|questa pagina della WIKI]].

Versione attuale delle 12:01, 10 mag 2013

Il formato X PixMap (XPM) è un formato di file immagine utilizzato dal sistema X Window. Esso è concepito per realizzare delle immagini di tipo pixmap, ed immagini trasparenti.

Il formato XPM è sostanzialmente un array di stringhe formate da sei parti essenziali e fondamentali: |1|

/* XPM */
static char* <nome_variabile>[] = {
"<Values>",
"<Colors>",
"<Pixels>",
};

I dati presenti nelle sezioni relative a <Values>, <Colors> e <Pixels> sono racchiuse fra virgolette e terminano con una virgola. Ogni sezione è posta in una nuova riga a capo.


Values

La sezione Values è una stringa che contiene 4 valori interi, separati da uno spazio, che rappresentano in ordine:

  • la quantità di pixel costituenti la dimensione orizzontale dell'immagine (le colonne di pixel);
  • la quantità di pixel costituenti la dimensione verticale dell'immagine (le righe di pixel);
  • il numero di colori presenti nell'immagine;
  • il numero di caratteri per pixel.

Esempio:

"8 8 4 1"


Colors

La sezione Colors è formata da tante stringhe quanti sono i colori presenti nell'immagine. Ogni stringa indica un colore, al quale è associato un qualunque carattere di riferimento (anche uno spazio) che sarà poi utilizzato nel codice per generare l'immagine. Il colore, sempre comunque anticipato dal suo carattere di riferimento e dal carattere "c", può essere espresso con il proprio nome, o con il codice RGB in esadecimale anticipato dal segno #, o con un segno % seguito dal codice HSV.
Ogni stringa riferita ad un colore è racchiusa fra virgolette e termina con una virgola, è posta in una nuova riga a capo. Esempio:

"a c red",
"b c #FFFF00",
". c green",
"  c #0000FF",

Trasparenza

Come detto all'inizio, il formato XPM supporta anche la trasparenza. Va indicata con la parola None al posto del nome o del codice del colore.
Esempio:

"a c None",


Pixels

La sezione Pixels è formata da tante strighe di dati quante sono le righe di pixel previste che compongono la dimensione verticale dell'immagine. Ogni stringa riferita ad una riga di pixel è racchiusa fra virgolette e termina con una virgola, ed è posta in una nuova riga a capo.
Ogni pixel è rappresentato dal carattere di riferimento del colore indicato. Questa sezione, pertanto, definisce in concreto la pixmap dell'immagine. Esempio:

"ab. ",
" a.b",
".b a",
"ab. ",
" a.b",
".b a",
"ab. ",


Chiusura

Il file è chiuso semplicemente con una parentesi graffa ed un segno di punto e virgola:

};


Esempio pratico

Mostreremo di seguito il codice necessario ed essenziale per creare una piccola immagine di otto colonne rosse e gialle (8 x 8 pixel): |2|

/* XPM */
static char * esempio[]={
"8 8 2 1",
"a c #FF0000",
"b c #FFFF00",
"abababab",
"abababab",
"abababab",
"abababab",
"abababab",
"abababab",
"abababab",
"abababab",
};


Note

[1] E' prevista anche una parte Extensions che però è opzionale, e qui non verrà trattata.

[2] Per una possibile gestione con Gambas si rimanda a questa pagina della WIKI.