#include <Windows.h>
#include <Icm.h>
#include <iostream>
#include <string> #pragma comment(lib,"Mscms.lib")
#define MAX_PATH 1024
BOOL flag = 0;
int main()
{
WCHAR* szDisplayDeviceName = NULL;
WCHAR szPath[MAX_PATH];
memset(szPath, 0, 1024);
DISPLAY_DEVICE dd;
dd.cb = sizeof(dd); if (flag = EnumDisplayDevices(L"\\\\.\\DISPLAY1", 0, &dd, EDD_GET_DEVICE_INTERFACE_NAME))
{
if (flag = WcsGetDefaultColorProfile(WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER,
dd.DeviceKey,
CPT_ICC,
CPST_PERCEPTUAL,
0, // dwProfileID -- doesn't seem to matter what value you use here
MAX_PATH * sizeof(WCHAR),
szPath))
{
PROFILE profile;
profile.cbDataSize = (DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR);
profile.dwType = PROFILE_FILENAME;
profile.pProfileData = (PVOID)szPath; HPROFILE hProfile = OpenColorProfile(&profile,
PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); // now do something with the profile }
} LPWSTR buffer;
ENUMTYPEW pe = { 0 };
pe.dwSize = sizeof(pe);
pe.dwVersion = ENUM_TYPE_VERSION;
pe.dwFields = ET_DEVICENAME;
pe.dwDeviceClass = CLASS_MONITOR;
pe.pDeviceName = dd.DeviceKey;
DWORD p = 0;
DWORD size = 0;
BOOL ret = EnumColorProfilesW(NULL, &pe, NULL, &size, &p);
buffer = (LPWSTR)malloc(size);
ret = EnumColorProfilesW(NULL, &pe, (BYTE*)buffer, &size, &p);
LPWSTR temp = buffer;
for (int i = 0; i < p; i++)
{
wprintf(L"%s\n", temp);
printf("without null character: %zu\n", wcslen(temp));
temp += wcslen(temp) + 1;
} flag = WcsSetDefaultColorProfile(WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER,
dd.DeviceKey,
CPT_ICC,
CPST_PERCEPTUAL,
0, // dwProfileID -- doesn't seem to matter what value you use here
buffer); free(buffer);
return 1;
}

这是列举出本机上的所有icm配置文件

相关链接: https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/vendor/aftereffects/win/OpenColorIO_AE_Dialogs_Win.cpp#L348

随机推荐

  1. Java进程内线程数量限制的相关学习

    Java进程内线程数量限制的相关学习 背景 还是之前出现 cannot create native thread 的问题的后续 周末在家学习了下如何在容器外抓取dump. 也验证了下能否开启超过宿主机 ...

  2. [转帖]【JVM】JVM概述

    1.JVM定义 JVM 是Java Virtual Machine(JVM )的缩写,Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令进行执行,这样实现了Java"一次编译, ...

  3. [转帖] Linux命令拾遗-软件资源观测

    https://www.cnblogs.com/codelogs/p/16060443.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 这是Linux ...

  4. Redis-dump Docker搭建的快速指南

    背景 最近学习redis想能够将dump文件进行导入处理. 看到比较好的办法都是使用ruby ,但是公司的网络太感人了. 想着比较简单的办法是通过docker方式来搭建. 这里简单记录一下搭建过程. ...

  5. Git - 关联远程仓库以及同时使用Lab和Hub

    更新一下,感觉有更简单的方式 就比如你git config 的 全局的name和email是lab的 那就clone github上的项目然后设置局部的name和email就行了 ********** ...

  6. Unity SetActive Event

    网上查了一下Unity的SetActive变化事件没有找到,我想到用另一种思路来实现这个事件通知,它可用来调试是何处把某个gameobject隐藏掉了 Unity提供了这两个函数,OnEnable,O ...

  7. Python自动化办公--Pandas玩转Excel【一】

    相关文章: Python自动化办公--Pandas玩转Excel数据分析[二] Python自动化办公--Pandas玩转Excel数据分析[三]_汀.的博客-CSDN博客 python处理Excel ...

  8. 【深度学习项目二】卷积神经网络LeNet实现minst数字识别

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

  9. C#合成图片显示不全

    现象 前段时间用C#写了一个小工具,主要功能是随机读取图片并合成一张长图.最近在使用的时候发现个问题,原图片宽度是1080,合成后的图片宽度也是1080,但是合成后的图片没有显示全,就像下面这样 原图 ...

  10. Windows配置PHP的MongoDB扩展

    环境 Windows 10 PHP 5.6.40/8.1.11 配置 下载MongoDB扩展 下载地址:https://pecl.php.net/package/mongodb 下载PHP版本对应的扩 ...