换句话说,我需要像xgamma命令一样方便的东西,但实时改变RGB亮度.
这可能吗?
解决方法 使用 XF86VidMode*系列功能.#include <X11/Xlib.h>#include <X11/extensions/xf86vmode.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main() { display *display; int screen; int major,minor; int i; XF86VIDModeGamma orig; display = XOpendisplay(NulL); if (!display) return -1; screen = DefaultScreen(display); if (!XF86VIDModequeryVersion(display,&major,&minor) || major < 2 || major == 2 && minor < 0 || !XF86VIDModeGetGamma(display,screen,&orig)) { XClosedisplay(display); return -1; } for (i = 0; i <= 32; i++) { XF86VIDModeGamma gamma; gamma.red = exp2f(2 - fabs(i - 16) / 4); gamma.green = gamma.red; gamma.blue = gamma.red; if (!XF86VIDModeSetGamma(display,&gamma)) break; printf("gamma: %f %f %f",gamma.red,gamma.green,gamma.blue); if (!XF86VIDModeGetGamma(display,&gamma)) break; printf(" -> %f %f %f\n",gamma.blue); sleep(1); } XF86VIDModeSetGamma(display,&orig); XF86VIDModeGetGamma(display,&orig); XClosedisplay(display); return 0;}
这将伽马从0.25增加到4.0并返回,然后恢复原始伽玛.
或者你可以反复调用system(“xgamma -gamma%f”),结果几乎相同.
总结以上是内存溢出为你收集整理的在Linux / Xorg上设置颜色亮度全部内容,希望文章能够帮你解决在Linux / Xorg上设置颜色亮度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)