使用透明背景颜色时,Xlib中的前景颜色会受到背景窗口颜色的意外影响

时间:2019-12-27 21:19:53

标签: x11 xlib

我正在尝试编写一个使用Xlib并具有alpha组件的程序,以便可以调整透明度。背景颜色透明度似乎可以正常工作,具有alpha,红色,绿色和蓝色值。当前景色后面的窗口为黑色或深色时,前景色似乎也可以正常工作。但是,随着它们后面的窗口逐渐变亮,前景色变得越来越暗。当它们后面的窗口是白色时,您根本看不到前景色。同样,前景色的alpha值似乎不受背景颜色alpha值的影响,就像我认为的那样。 我试图在网上搜索一下可能的解释,但是我一直很简短,我不确定我到底应该搜索什么(特别是因为我不太了解Xlib,我发现它是文档有点混乱:(。)

使用以下方法设置前景色: XSetForeground() 并使用以下方式绘制正方形(可以在下面的图像中看到,并且颜色由上述功能设置): XFillRectangle()

我事先道歉,因为我不知道原因以及原因所在,所以不包括任何其他代码,我认为这里没有太多代码。 可以在以下位置找到该代码: https://github.com/samcdc6600/binaryClock/tree/develop/src

带有黑色背景的终端前面的程序窗口示例: Program window in front of dark window. 白色浏览器窗口前面的程序窗口示例:enter image description here

在上述示例中,该程序是在FreeBSD下使用以下命令运行的(参数为x坐标,y坐标,alpha值,背景红色值,背景绿色值,背景蓝色值,文本红色值,文本绿色值,文本蓝色值,正位红色值,正位绿色值,正位蓝色值,负位红色值,负位绿色值和负位蓝色值,其中alpha值,背景红色值,背景绿色值和背景蓝色值应该在0-255的范围内,其他值应该在0-65535的范围内。): ./binclk 0 0 255 20 0 50 65535 0 65535 45535 0 01000 32000 0 65535

总而言之,我希望前景色在其alpha值方面表现得像背景色。

对于可能出问题的任何解释将不胜感激。

0 个答案:

没有答案