Windows獲取當(dāng)前顯示器色域疟赊、亮度信息【C++源碼】

源碼【VS2019可直接運(yùn)行】

#include <iostream>
#include <windows.h>
#include <dxgi1_6.h>

#pragma comment(lib, "dxgi.lib")

int main() {
    // Step 1: Create a DXGI factory
    IDXGIFactory6* pFactory = nullptr;
    HRESULT hr = CreateDXGIFactory1(IID_PPV_ARGS(&pFactory));
    if (FAILED(hr)) {
        std::cout << "Failed to create DXGI factory: " << std::hex << hr << std::endl;
        return 1;
    }

    // Step 2: Enumerate the display adapters
    IDXGIAdapter1* pAdapter = nullptr;
    hr = pFactory->EnumAdapters1(0, &pAdapter);
    if (FAILED(hr)) {
        std::cout << "Failed to enumerate adapters: " << std::hex << hr << std::endl;
        return 1;
    }

    // Step 3: Enumerate the outputs (display monitors)
    IDXGIOutput* pOutput = nullptr;
    hr = pAdapter->EnumOutputs(0, &pOutput);
    if (FAILED(hr)) {
        std::cout << "Failed to enumerate outputs: " << std::hex << hr << std::endl;
        return 1;
    }

    // Step 4: Query IDXGIOutput6 interface
    IDXGIOutput6* pOutput6 = nullptr;
    hr = pOutput->QueryInterface(IID_PPV_ARGS(&pOutput6));
    if (FAILED(hr)) {
        std::cout << "Failed to query IDXGIOutput6 interface: " << std::hex << hr << std::endl;
        return 1;
    }

    // Step 5: Get DXGI_OUTPUT_DESC1 structure
    DXGI_OUTPUT_DESC1 outputDesc1;
    hr = pOutput6->GetDesc1(&outputDesc1);
    if (FAILED(hr)) {
        std::cout << "Failed to get DXGI_OUTPUT_DESC1: " << std::hex << hr << std::endl;
        return 1;
    }

    printf("R(%.4f %.4f) G(%.4f %.4f) B(%.4f %.4f) W(%.4f %.4f)\nLuminance:%.4f->%.4fcd/m2\n", 
        outputDesc1.RedPrimary[0], outputDesc1.RedPrimary[1],
        outputDesc1.GreenPrimary[0], outputDesc1.GreenPrimary[1],
        outputDesc1.BluePrimary[0], outputDesc1.BluePrimary[1],
        outputDesc1.WhitePoint[0], outputDesc1.WhitePoint[1],
        outputDesc1.MinLuminance, outputDesc1.MaxLuminance
        );
    std::cout << "Current Color Space: " << outputDesc1.ColorSpace << std::endl;

    pOutput6->Release();
    pOutput->Release();
    pAdapter->Release();
    pFactory->Release();
    getchar();

    return 0;
}

輸出

R(0.6846 0.3096) G(0.2695 0.6602) B(0.1504 0.0596) W(0.3135 0.3291)
Luminance:0.5000->270.0000cd/m2
Current Color Space: 0

該輸出表示色域坐標(biāo)為:R(0.6846 0.3096) G(0.2695 0.6602) B(0.1504 0.0596) W(0.3135 0.3291)
最低亮度為0.5捂龄,最高亮度為270予颤,對比度約為540,這么差尝苇?愧旦?[存疑]
我們查資料發(fā)現(xiàn)和P3-D65非常接近世剖,事實(shí)也確實(shí)如此(P3-D65色品坐標(biāo)如下圖)


image.png

outputDesc1.ColorSpace 這個(gè)值表示當(dāng)前所在的色彩空間,我這邊運(yùn)行下來是這個(gè)DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709笤虫,無論通過顯示器如何調(diào)節(jié)顯示色域旁瘫,或者更改windows顯示器色彩管理的一直打印的是這個(gè),所以我覺得這個(gè)值的參考性不是很好琼蚯。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酬凳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子遭庶,更是在濱河造成了極大的恐慌宁仔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峦睡,死亡現(xiàn)場離奇詭異翎苫,居然都是意外死亡权埠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門煎谍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攘蔽,“玉大人,你說我怎么就攤上這事呐粘÷祝” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵作岖,是天一觀的道長唆垃。 經(jīng)常有香客問我,道長痘儡,這世上最難降的妖魔是什么降盹? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮谤辜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘价捧。我一直安慰自己丑念,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布结蟋。 她就那樣靜靜地躺著脯倚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嵌屎。 梳的紋絲不亂的頭發(fā)上推正,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音宝惰,去河邊找鬼植榕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛尼夺,可吹牛的內(nèi)容都是我干的尊残。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼淤堵,長吁一口氣:“原來是場噩夢啊……” “哼寝衫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拐邪,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤慰毅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扎阶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汹胃,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婶芭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了统台。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雕擂。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贱勃,靈堂內(nèi)的尸體忽然破棺而出井赌,到底是詐尸還是另有隱情,我是刑警寧澤贵扰,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布仇穗,位于F島的核電站,受9級特大地震影響戚绕,放射性物質(zhì)發(fā)生泄漏纹坐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一舞丛、第九天 我趴在偏房一處隱蔽的房頂上張望耘子。 院中可真熱鬧,春花似錦球切、人聲如沸谷誓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捍歪。三九已至,卻和暖如春鸵钝,著一層夾襖步出監(jiān)牢的瞬間糙臼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工恩商, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留变逃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓怠堪,卻偏偏與公主長得像韧献,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子研叫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容