Indice

CONVERTIRE IMMAGINI AL FORMATO MIDRES

PREMESSA

Questa pagina non vuole sostituire il manuale d'uso del software (per quello c'è il README) quanto fornire alcune indicazioni sul suo funzionamento nonché spiegare alcuni degli algoritmi utilizzati.

MODALITA' OPERATIVE

Il programma funziona in due modalità alternative:

MODALITA' NON COMPRESSA (CBM)

In questa modalità, il programma leggerà il file immagine proposto in ingresso e genererà due file separati:

Il vantaggio di questa modalità è che è compatibile con il BASIC V2, poiché i file sono salvati seguendo lo standard CBM. Sarà quindi sufficiente lanciare il comando LOAD con l'opzione finale ,1 su ognuno di questi due file per far comparire la schermata complessiva sullo schermo.

Lo svantaggio principale è che l'immagine viene costruita mentre il sistema la legge, e questo può costituire un problema estetico. Un altro problema è che tale rappresentazione occupa più spazio di quello strettamente necessario. Ad esempio, sul Commodore 64 una schermata occupa complessivamente 2.004 bytes.

Esempio di un caricatore di immagini BASIC per Commodore 64:

  10 if p=0 then 50
  20 if c=0 then 60
  30 poke 53281,0
  40 goto 40
  50 p=1:load "file.pic",8,1
  60 c=1:load "file.col",8,1

Esempio di un caricatore di immagini BASIC per Commodore VIC 20:

  5 if i=0 then 45
  10 if p=0 then 50
  20 if c=0 then 60
  30 poke 36879,8
  40 goto 40
  45 for i=0 to 23*22:print " ";:next i
  50 p=1:load "file.pic",8,1
  60 c=1:load "file.col",8,1

MODALITA' NON COMPRESSA (ATARI)

In questa modalità, il programma leggerà il file immagine proposto in ingresso e genererà un solo file:

Tuttavia, sarà necessario caricare il set di caratteri ridefiniti ztiles.bin per visualizzare il risultato.

MODALITA' COMPRESSA (CBM)

In questa modalità, il programma leggerà il file immagine proposto in ingresso e genererà un singolo file:

Il vantaggio principale è che tale rappresentazione occupa meno del 50% dello spazio necessario nella versione non compressa. Ad esempio, sul Commodore 64 una schermata occupa complessivamente 1.002 bytes. L'altro vantaggio è che l'immagine può essere ricostruita in modo più rapido che leggendo da una periferica di massa, e questo risulta esteticamente più gradevole.

Lo svantaggio principale di questa modalità è che è incompatibile con il BASIC V2, ed è necessario disporre tanto di un apposito lettore che di una schermata di appoggio. Il programma dimostrativo della libreria midres è proprio un riproduttore di slideshow, che è in grado di visualizzare il formato compresso. Per utilizzarlo è necessario creare le varie immagini, aggiornare il file dello slideshow, modificare il makefile e, infine, ricostruire il programma dimostrativo.

ELABORAZIONE DELL'IMMAGINE

La scrittura dell'immagine midres avviene attraverso una serie di processi automatici, che elaborano l'immagine per adattarla alle esigenze del mezzo di rappresentazione.

In primo luogo, se l'immagine in ingresso e quella in uscita non hanno la medesima dimensione, il sistema suddividerà l'immagine in ingresso in una serie di blocchi. Ad ognuno di questi blocchi sarà fatto corrispondere uno dei mixel in uscita.

Poiché i blocchi in ingresso sono composti da più pixel, il colore che sarà portato sul mixel in uscita sarà calcolato come la media matematica dei colori di tutti i pixel.

Ognuno di questi pixel “medi” sarà sottoposto ad un duplice processo parallelo. Da una parte, sarà sottoposto al confronto con la soglia di luminosita indicata sulla linea di comando. Dall'altra, si cercherà il colore della palette più vicino a quello che si ha in ingresso.

Il risultato di queste due operazioni determinerà la scrittura, sulla bitmap midres, del mixel (acceso o spento) e del relativo attributo di colore.

MIDRES - an isomorphic gamelib