[英]X11: Convert Pixel value to RGB
我對X11相對較新,並且擴展了X11應用程序。 我需要將類型為Pixel
的變量中的顏色轉換為其RGB分量。 我的理解是,這取決於應用程序的外觀。 對於TrueColor和DirectColor視覺效果,我可以查看XVisualInfo
並使用bits_per_rgb
和{red,green,blue}_mask
成員。
但是對於PseudoColor或其他視覺效果該怎么辦? 我需要的是諸如
void PixelToRGB(Pixel p, XVisualInfo *v, uint16_t *r, uint16_t *g, uint16_t *b)
我正在閱讀Xlib編程手冊,但找不到有關如何實現此功能的信息。
我還沒有完成Xlib編程,所以這是有根據的猜測,但是您應該能夠從有問題的窗口的XWindowAttributes
中獲取ColorMap
,並且像素值將成為色圖的索引。 顯然,查找是通過將像素填充到XColor
並調用XQueryColor
來完成的,這將填充XColor
的red
, green
和blue
字段。 我相信即使使用DirectColor
和TrueColor
視覺效果也應該做到這一點,因為在DirectColor
視覺效果的情況下,色圖可能包含伽瑪校正之類的內容,並且可能包含更奇怪的東西(怪異的色彩循環效果?)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.