调整应用程序的亮度和对比度

问题描述 投票:0回答:2

dvju 查看器WinDjiew 能够调整亮度和对比度,使阅读文档更舒适。见下图。

对我来说,看起来只是改变背景颜色就能达到这种效果,尽管我不知道调整“亮度”和“对比度”的功能实际上应该如何完成。

你知道如何实现这样的功能吗?

enter image description here

winapi brightness contrast
2个回答
3
投票

这些是常规应用程序私有设置,它们会影响应用程序用于绘制其 UI 的颜色。从你的问题的标题来看,我想你可能认为有某些standard API来控制整个应用程序的亮度,但是它是特定于这个应用程序的完全私有的实现:滑块只是更新内部变量并强制重新绘制应用程序窗口,该窗口使用更新的颜色来绘制自身。


0
投票

假设您的实现语言可以更改颜色 [R,G,B],其分量红、绿、蓝的值介于 0 到 255 之间。

设 C 为对比度,区间为 0 - 100

设L为光;亮度为 0 - 100

然后对 [R,G,B] 的每个 x 颜色分量进行调整:

  var brightness = 2*128*L/100 - 128; // -128 to 128
  var contrast = ((x - 128)*C/100 + 128) //max 0 to 255, min 128 to 128
  x = contrast + brightness
  if (x < 0) x = 0
  if (x > 255) x = 255
© www.soinside.com 2019 - 2024. All rights reserved.