Primer di computer grafica
    
Come funziona una stampante QuickDraw
Driver di sistema
Ogni stampante accetta certi comandi, esclusivi per quella stampante.

Un programma, per supportare una stampante, deve essere in grado di dare i comandi adeguati per quella stampante. Normalmente un programma, per poter essere venduto deve supportare qualche decine di stampanti, e quindi deve conoscere i comandi adeguati a tutte queste stampanti.

Un'alternativa a questa situazione consiste in un accordo vituale tra produttori di software e produttori di stampanti, con l'intermediazione del produttore del sistema operativo.

Il sistema operativo stabilisce un determinato linguaggio grafico, genericamente adatto per tutte le stampanti (su MacOS è QuickDraw, su Windows è GDI).

Un programma, per stampare, emette unicamente istruzioni in questo linguaggio.

D'altra parte il costruttore di una stampante realizza un driver per quella stampante che accetta comandi in questo linguaggio e li trasforma in comandi per quella determinata stampante.

Il sistema operativo MacOS consente di collegare a Macintosh una stampante. I dati vengono spediti a tale stampante mediante istruzioni espresse in linguaggio QuickDraw, che è appunto la parte del sistema operativo che gestisce la grafica, sia su monitor che in stampa. Il sistema operativo colloquia con la stampante (in QuickDraw) mediante un driver proprietario. Attraverso questo driver l'applicazione spedisce alla stampante la mappa di pixel (CMY, o CMYK, o CcMmYK) da stampare. Un stampante che funziona in questo modo è detta stampante QuickDraw.

Possono esistere altre situazioni, in cui la stampa non viene effettuata tramite il sistema operativo (cioè tramite QuickDraw). La più comune di queste situazioni è la stampa PostScript. In questo caso la stampante utilizzata interpreta un programma scritto in linguaggio PostScript. La trasmissione di questo programma avviene mediante un driver di stampa PostScript (su Macintosh, LaserWriter o AdobePS).

Oltre al PostScript, possono esistere altre situazioni non gestite dal sistema operativo. Per esempio si può collegare a un Macintosh un plotter che interpreta il linguaggio HPGL. In tal caso deve essere l'applicazione a gestire direttamente il plotter, senza utilizzare il sistema operativo e quindi senza un driver.

Su Windows (dove la parte del sistema operativo che gestisce la grafica si chiama GDI) la situazione è analoga.

QuickDraw
Le stampanti a colori per personal computer funzionano con tre (CMY), quattro (CMYK) o sei colori (CcMmYK).

QuickDraw (come GDI) può rappresentare un colore con al massimo tre componenti (per esempio RGB) e quindi non ha le adeguate strutture linguistiche per specificare un colore CMYK (che ha quattro componenti). Di conseguenza ad una stampante QuickDraw è possibile trasmettere solo dati RGB e non c'è modo di trasmettere dati CMYK. Non si tratta di una limitazione della stampante ma di QuickDraw, il linguaggio di trasmissione dei dati.

Chi trasforma i dati RGB in dati CMYK? E' il driver stesso della stampante a farlo che, come detto, è sempre un driver proprietario, specifico per quella stampante, normalmente non "aperto", i cui dettagli cioè non sono noti (è una cosiddetta "scatola nera").

In una stampante QuickDraw il flusso di stampa avviene in questo modo:

  1. Nel driver della stampante può esserci un'area controllata dall'applicazione (nell'immagine qui sopra le due righe in basso sono controllate da Photoshop). In tal caso l'applicazione può eseguire qualche operazioni sui dati prima di spedirli al driver vero e proprio.
  2. L'applicazione spedisce i dati in QuickDraw (e quindi con i colori espressi in RGB) al driver della stampante. Alcune applicazioni possono spedire, assieme ai dati, anche il profilo di origine dell'immagine. Per esempio nell'immagine qui sopra se Printer Color Management è attivato Photoshop 5 spedisce il profilo dell'immagine. (Altre applicazioni che lo possono fare: Photoshop 6, Illustrator 9, InDesign, LinoColor 6).
  3. Il driver può agire sui dati RGB ed eventualmente sul profilo, per esempio invocando ColorSync per fare una trasformazione da RGB (profilo arrivato con i dati) a RGB (profilo della stampante).
  4. Il driver della stampante converte i dati RGB in CMYK mediante una tabella proprietaria interna (software o hardware, o anche utilizzando ColorSync).
  5. Il driver esegue la retinatura dell'immagine (screening).
  6. Il driver spedisce i pixel CMYK alla stampante.

La conversione finale (passo 4) tra RGB e CMYK è oggi sempre fatta in software, nel driver della stampante, normalmente con una LUT (lookup table) che ha una sua propria generazione del nero, limite di inchiostri e tutto il resto.

In teoria la conversione potrebbe anche essere fatta in hardware (nell'elettronica della stampante), ma è un metodo che non si usa: forse veniva usato una volta nelle stampanti ad aghi, ma la conversione RGB-CMYK dipende dalla combinazione carta/inchiostro e non è conveniente inserire nell'hardware diverse LUT per diverse combinazioni fisse carta/inchiostro. Invece nel driver software queste LUT si possono modificare e aggiornare.

In teoria potrebbe anche essere fatta da ColorSync, ma anche questo metodo non viene più usato probabilmente a causa del fatto che la conversione da RGB a CMYK è intimamente collegata con la retinatura (screening), generazione del nero, limiti degli inchiostri, e comunque richiederebbe all'utente la scelta di un profilo CMYK per la stampante.

E se la mia immagine è CMYK?
Da quanto detto è impossibile che al driver della stampante arrivino dati CMYK, perché QuickDraw non ha modo di trasmetterli.

Se i dati di partenza sono CMYK, il programma applicativo, per esempio Photoshop li converte in RGB (con qualche metodo rudimentale) e li trasmette mediante QuickDraw al driver della stampante, il quale li riconverte in CMYK, li rasterizza e li invia alla stampante. Avviene quindi una doppia conversione che è da evitare per ragioni di efficienza e di qualità.

Se è proprio necessario inviare alla stampante direttamente dei dati CMYK occorre che il programma aggiri QuickDraw. Per esempio si potrebbe sviluppare un plug-in di Photoshop che trasmette direttamente i dati alla stampante. Oppure si potrebbe estendere il driver per supportare la stampa diretta per esempio di TIFF CMYK. Oppure si può usare un driver PostScript, che supporta CMYK.

Conclusione: le stampanti QuickDraw possono ricevere dall'applicazione solo dati RGB e per questo motivo sono dette anche stampanti RGB.

  
Home | Commenti a Mauro Boscarol | Ultimo aggiornamento 22 dicembre 2000