WPF不支持10位显示器(也就是30位颜色)吗?

e4yzc0pl  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(107)

我需要在WPF图像查看应用程序中支持每像素10位显示(又名30位颜色)。
我有一个工作设置(10位屏幕和Nvidia Quadro),我已经能够通过在PhotoShop中测试梯度来验证10位支持的工作原理:(http://www.tedlansingphotography.com/blog/?p=287)和一个NEC演示程序(据我所知都使用OpenGL)。
然而,我不能让我的WPF应用程序显示一个很好的梯度没有条带。我试着用Pixels.Rgb48和Pixels.Bgr101010程序化地生成一个可扩展的位图,但是当我在屏幕上绘制它时(通过将它分配给System.Windows.Controls.Image.Souce),我仍然看到条带。

  1. WPF不支持10位监视器吗?
    1.是否有其他WPF友好的API支持它(或者我必须用OpenGL重写程序)?
jfgube3f

jfgube3f1#

Wpf不支持每通道10位(bpc)显示;只有8 bpc,尽管10 bpc的文件操作和事实,WPF有实习互操作与DirectX。
要在WPF中有10 bpc,您可能需要注入OpenGL或DirectX显示;与OpenGL相比,使用DirectX的优势在于Geforce显卡也支持10 bpc显示; OpenGL 10 bpc显示器只支持Quadro,如果我可以提到我知道的GPU制造商的话。
Photoshop使用OpenGL进行显示,因此Photoshop的10 bpc显示仅适用于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

相关问题