![]() |
1
3
以下是一些可能性:
重叠渐变笔刷 对于您显示的图像,您可能可以通过使用以下内容来实现所需的效果:
第一个填充设置颜色,第二个填充使颜色变暗。很明显,这可以在绘图或可视化画笔中完成。 这是最简单的解决方案,但只能产生有限的结果。 将图像创建为位图 使用位图可以工作,但与分辨率无关。您需要选择创建位图的分辨率。如果你选择的分辨率太低,你的质量就会很差。如果你选择的分辨率太高,你会浪费资源。根据屏幕分辨率和转换自动选择分辨率是困难的,但也是可能的:必须订阅多个事件以检测分辨率更改,并在目标上使用transform to device来确定从wpf坐标到设备坐标的转换。 一旦确定了位图的分辨率,剩下的就很简单了:
使用像素着色器 像素着色器实际上运行在gpu本身中,它们为每个像素运行。他们已经知道目标的分辨率,所以颜色计算很容易。困难的是,你不能用c或vb.net来编写算法:你必须用高级着色语言(hlsl)来编写它,这可能是一个重要的学习曲线。 以下是一些带有自定义着色器示例的网站: Pixel shaders and silverlight wpf像素着色器效果库 Interactive example |