Skip to content

Y-Lou/EmbedICCProfile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmbedICCProfile

向 JPEG 图像中嵌入 ICC 色彩配置文件。

什么是 ICC 色彩配置文件

 ICC 色彩配置文件为应用程序提供参考,指示图像色彩的正确显示方式。

 上面是两张由 iPhone 7 拍摄的同一张照片的局部对比图,第一张图片没有嵌入 ICC 配置文件,而第二张图片使用本程序嵌入了正确的配置文件。

 由于 iPhone 7 拍摄的照片使用 Display P3 色域存储,所以当这张图片出现在其它 sRGB 设备上时,如果没有正确的色彩配置文件的指示,应用程序将无法显示准确的色彩。

 在本例中,在 Windows 10 上使用 “照片” app 打开没有正确色彩配置文件的 Display P3 照片将会比正确的色彩偏淡、偏紫。

此程序如何使用

 推荐的做法是自己编译源代码,但是我也提供了编译后的二进制文件。您可以在 bin 文件夹找到此程序的二进制文件(使用 Visual Studio 2015 编译)。

 用法是 EmbedICCProfile JPG文件 ICC文件
 如: EmbedICCProfile 1.jpg "Display P3.icc"

 您可能需要键入文件的绝对路径,此外,当文件名包含空格时,您应该使用英文引号将其括起。

 运行后,会将指定的 ICC 配置文件(参数2)嵌入到指定的 JPG 文件(参数1)。

跨平台

 此代码仅在 Windows 10 / Visual Studio 2015 环境下编译通过。

 读取文件那部分代码(liuzianglib中)目测在 g++ 或 clang 下是过不了编译的,不过你只需要自己写一个读取文件的代码就好了。

此程序核心代码 EmbedICCProfile 函数理论上是可以跨平台的,没有什么问题(不过我没试过)。

代码库文件夹说明

bin 中存放了编译后的二进制文件。

example 中存放了一张使用 iPhone 7 拍摄的 Display P3 色域的照片,但是并未内嵌 ICC 色彩配置文件。您可以使用本程序向其中嵌入 Display P3 配置文件,并对比嵌入前和嵌入后的不同。

icc-profile 中存放了许多常用色彩文件,包括 Display P3 和 sRGB 等,这是我从我的 Mac 上拷出来的。

src 文件夹中包含了此程序的所有源代码。

About

Embed ICC Profile to JPEG image.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 87.5%
  • CMake 12.5%