Gestione dei formati di colore

Importante

È consigliabile usare il driver di classe posta in arrivo IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi della stampante.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto per la stampa.

Ogni formato di colore supportato da una stampante viene specificato come opzione per la funzionalità ColorMode. Usando gli attributi delle opzioni per la funzionalità ColorMode, è possibile descrivere ogni formato di colore accettato dalla stampante. La tabella seguente illustra i formati di dati a colori che Unidrv può gestire.

Numero di piani di colore Numero di bit per pixel
nel dispositivo (*DevNumOfPlanes) nel dispositivo (*DevBPP)
1 1 (nero e bianco)
1 8
1 24
3 1 (CMY e RGB)
4 1 (CMYK)

Per questi formati, Unidrv può convertire i dati bitmap indipendenti dal dispositivo nel formato corretto e inviarli alla stampante. Le operazioni di halftoning che è possibile eseguire su questi dati sono descritte in Halftoning con Unidrv.

Se la stampante supporta formati di colore non elencati nella tabella precedente, è necessario eseguire le operazioni seguenti:

Il metodo IPrintOemUni ImageProcessing deve eseguire le operazioni seguenti:

  • Convertire i dati DIB nel formato colore della stampante.

  • Eseguire operazioni di halftoning sui dati.

  • Inviare i dati allo spooler di stampa.

Per altre informazioni sulla fornitura di una funzione IPrintOemUni ImageProcessing, vedere Customized Color Formats.For more information about providing an IPrintOemUni ImageProcessing function, see Customized Color Formats.

Rendering di immagini di alta qualità

Per ogni formato di colore, si specificano entrambi i bit per pixel accettati dall'hardware della stampante e i bit per pixel che si vuole usare Unidrv durante la creazione di DIB. Questi valori vengono specificati rispettivamente con gli attributi *DevBPP e *DrvBPP. In alcuni casi, è consigliabile eseguire il rendering delle immagini come bitmap con un numero di bit superiore per pixel rispetto alla stampante (ad esempio, per tentare di riprodurre fotografie di alta qualità). È quindi possibile specificare un valore *DrvBPP maggiore del risultato della moltiplicazione del valore *DevBPP per il valore *DevNumOfPlanes.

Si supponga, ad esempio, di voler definire un'opzione ColorMode che determina il rendering delle immagini come bitmap a 24 bit/pixel, ma si vuole che la bitmap venga inviata alla stampante come dati CMYK . È possibile definire questa modalità come indicato di seguito:

*Feature: ColorMode
{
    *Option: 24toCMYK
    {
        *Name: "Photographic Quality"
        *DrvBPP: 24
        *DevNumOfPlanes: 4
        *DevBPP: 1
        *ColorPlaneOrder: LIST(CYAN, MAGENTA, YELLOW, BLACK)
        *IPCallbackID: 1
    }
 other options
}

In questo esempio, gli attributi *DevBPP e *DevNumOfPlanes rappresentano il formato CMYK a quattro piani a bit per piano che Unidrv può eseguire il rendering e quindi inviare alla stampante. Tuttavia, in questo caso, le operazioni di halftoning devono essere eseguite sull'immagine di cui è stato eseguito il rendering prima che venga stampata. È necessario utilizzare il halftoning fornito dal minidriver.