Dipende davvero da ciò che è la fonte PixelFormat
. Supponendo che la tua fonte sia PixelFormats.Bgra32
e che tu voglia andare in scala di grigi, potresti prendere in considerazione l'utilizzo di un formato pixel di destinazione di PixelFormats.Gray16
. Tuttavia, Gray16
non supporta alpha. Ha appena 65.535 voti tra bianco e nero, inclusi.
Hai alcune opzioni. Uno è di stare con Bgra32
e basta impostare i canali blu, verde e rosso sullo stesso valore. In questo modo puoi mantenere il canale alfa. Questo può essere uno spreco se non si richiede un canale alfa a 8 bit (per diversi livelli di alfa per pixel).
Un'altra opzione è utilizzare un formato pixel indicizzato come PixelFormats.Indexed8
e creare una tavolozza che contenga i colori grigi necessari e i valori alfa. Se non hai bisogno di miscelare alpha, puoi rendere il colore della tavolozza a zero posizione essere completamente trasparente (un alfa di zero) e poi progredire in nero solido da indice 1 a bianco in 255.
fonte
2012-10-31 01:29:56
L'ho usato su System.Drawing.Image e funziona benissimo. Non è l'ideale per le immagini WPF a meno che non si convertano bitmap GDI in BitmapSources. – Zooba
La mia esperienza con WPF è molto limitata, quindi probabilmente hai ragione. – bernhof
Contrassegnare questo come risposta in quanto sono stato costretto a utilizzare Bitmap GDI e convertirli in Bitmap di WPF. Modifica post. –