我正在为Silverlight 4.0构建一个图像编辑器,需要一些洞察力或可能的代码片段或库来实现对比度/亮度管理。
如果有人愿意分享如何实现,我将不胜感激。
谢谢!
答案 0 :(得分:2)
对比度是指在可能的总值范围内,存在一系列像素亮度值的“宽”。
亮度是此范围从最小可能水平的“偏移”。
要增加对比度,从所有像素值中减去(最小当前值 - 最小可能值)以将条带置回0.然后将所有值乘以(最大可能值/最大值存在)以将“条带”缩放为所有可能值的范围。
要调整亮度,请从每个像素中添加或减去绝对值。
您可能希望使用HSL或HSV色彩空间中的亮度或值通道执行此操作。
我在这里找到了一些代码。 http://www.dfanning.com/ip_tips/contrast.html
答案 1 :(得分:1)
这是运行时很棒的article on changing brightness。它主要涉及将Brush颜色转换为HSB,应用新的“亮度”级别,然后转换回新的Brush颜色。
至于对比......我想你可以做同样的基本技巧,但这次检查每种颜色的RGB值;如果一种颜色恰好支配其他颜色,则增加其颜色值并通过某种因素减少其他颜色值。你的红色变红了,绿色变得更绿,你的蓝色变得更蓝。这个因素需要调整,但它可能有效。