OK, ho un'immagine proveniente da un'applicazione esterna in un formato indicizzato a 8 bit. Ho bisogno di questa immagine convertita in un formato a 24 bit della stessa identica dimensione.Conversione da un Format8bppIndexed a un Format24bppRgb in C#/GDI +
Ho provato a creare un nuovo Bitmap delle stesse dimensioni e del tipo Format24bppRgb e quindi utilizzare un oggetto Graphics per disegnare l'immagine a 8 bit su di esso prima di salvarlo come Bmp. Questo approccio non genera errori, ma quando apro l'immagine risultante l'intestazione BMP ha tutti i tipi di valori funky. L'altezza e la larghezza sono ENORME e, inoltre, ci sono valori divertenti (e grandi) per i flag di compressione e pochi altri. Sfortunatamente le mie particolari esigenze sono di passare questo file a uno specifico driver di stampa che richiede un'immagine a 24 bit con valori di intestazione specifici (che sto cercando di ottenere tramite GDI +)
Qualcuno sa di un esempio su "up- convertire "un file indicizzato in un file a 24 bit non indicizzato? Se non un esempio, quale percorso dovrei iniziare a scrivere il mio?
-Kevin Grossnicklaus [email protected]
Si consiglia di includere g.PageUnit = GraphicsUnit.Pixel per garantire che essa trae pixel per pixel, piuttosto che fare la conversione DPI (che DrawImage fa di default). –
@ Chris: Grazie per il suggerimento. Lo aggiungerò –
@Jim: Vorrei aggiungere che il suggerimento di erlando per impostare la risoluzione a volte è necessario per assicurarsi che il risultato sia davvero invariato (oggi ho colpito questo caso). –