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.
Il programma funziona in due modalità alternative:
-u
;-c
.
In questa modalità, il programma leggerà il file immagine proposto in ingresso e genererà due file separati:
-o
) con la sola informazione sui mixel;-O
) con l'informazione sul colore per ogni carattere.
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
In questa modalità, il programma leggerà il file immagine proposto in ingresso e genererà un solo file:
-o
) con la sola informazione sui mixel.
Tuttavia, sarà necessario caricare il set di caratteri ridefiniti ztiles.bin
per visualizzare il risultato.
In questa modalità, il programma leggerà il file immagine proposto in ingresso e genererà un singolo file:
-o
) con una combinazione delle informazioni legati ai mixel e a quelle del colore.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.
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.