2016-06-08 24 views
5

Ho bisogno di supportare display 10 bit per pixel (ovvero colori a 30 bit) in un'applicazione di visualizzazione di immagini WPF.Non supporta WPF monitor a 10 bit (noti anche come colori a 30 bit)?

ho un setup (schermo 10bit e Nvidia Quadro) lavoro dove ho potuto verificare che le opere di sostegno 10 bit testando con pendenza in PhotoShop: (http://www.tedlansingphotography.com/blog/?p=287) e un programma NEC demo (entrambi utilizzando OpenGL per quanto posso vedere).

Tuttavia non riesco a far visualizzare la mia app WPF con un gradiente gradevole senza banding. Ho provato proceduralmente a generare un WritableBitmap con PixelFormats.Rgb48 e PixelFormats.Bgr101010 ma quando lo disegno sullo schermo (assegnandolo a un System.Windows.Controls.Image.Souce) vedo ancora le bande.

  1. Non supporta i monitor a 10 bit WPF?
  2. Esistono API API compatibili con WPF che lo supportano (o devo riscrivere il programma in OpenGL)?

risposta

0

Wpf non supporta il display 10 bit per canale (bpc); solo 8 bpc nonostante la manipolazione dei file 10bpc e il fatto che WPF abbia interop interno con DirectX.

Per avere 10 bpc all'interno di WPF, è possibile che si desideri iniettare la visualizzazione OpenGL o DirectX; il vantaggio di usare DirectX su OpenGL è che il display a 10bpc sarà supportato anche con le schede video Geforce; Il display OpenGL 10 bpc è supportato solo da Quadro, se posso menzionare il produttore della GPU che conosco.

Photoshop utilizza OpenGL per la visualizzazione, quindi la visualizzazione 10bpc con Photoshop è solo funzionale con Quadro (ciò è dovuto alle più complete funzionalità OpenGL supportate dai driver Quadro).

https://github.com/Microsoft/WPFDXInterop

https://www.codeproject.com/Articles/23736/Creating-OpenGL-Windows-in-WPF

https://www.codeproject.com/Articles/265903/Using-OpenGL-in-a-WPF-Application