2016-06-08 73 views
5

我需要在WPF圖像查看應用程序中支持每像素顯示10位(又稱30位顏色)。WPF不支持10位顯示器(又名30位顏色)嗎?

我有,我已經能夠驗證10位支持的作品通過梯度在PhotoShop測試工作設置(10bit的屏幕和Nvidia的Quadro): (http://www.tedlansingphotography.com/blog/?p=287) 和NEC演示程序(包括使用OpenGL據我所見)。

但是,我不能讓我的WPF應用程序顯示一個很好的梯度沒有綁定。 我試着用PixelFormats.Rgb48和PixelFormats.Bgr101010程序生成一個WritableBitmap,但是當我在屏幕上繪製它時(通過將它分配給一個System.Windows.Controls.Image.Souce),我仍然看到了banding。

  1. 不是WPF支持10位顯示器嗎?
  2. 是否有任何支持WPF的友好API(或者我必須在OpenGL中重寫該程序)?

回答

0

Wpf不支持每通道(bpc)顯示10位;儘管有10bpc文件操作,並且WPF已經與DirectX互操作,但只有8 bpc。

要在WPF內部有10個bpc,您可能需要注入OpenGL或DirectX顯示;在OpenGL上使用DirectX的優勢在於,GeForce顯示卡也支持10bpc顯示器; OpenGL 10 bpc顯示器僅由Quadro支持,如果我可能提及我認識的GPU製造商。

Photoshop正在使用OpenGL進行顯示,因此10bpc與Photoshop的顯示功能僅適用於Quadro(這是由於Quadro驅動程序支持更完整的OpenGL功能)。

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