android - 在将图像发送到设备之前,我是否需要从图像中删除 p3 色域?

标签 android image-processing color-space color-profile srgb

我有一个存储用户图像的网络服务器,我需要知道如何存储每个图像(即:我的问题是知道我是否需要存储带有或不带有色彩空间配置文件的每张图片 )。

我不太明白色彩空间配置文件的工作原理。我知道 android < Oreo 仅支持 sRGB,但是 android device < Oreo 是否能够将 P3 色彩空间转换为 sRGB ?或者我绝对需要只向这些设备发送 sRGB 图片?我知道例如 Instagram 或 500px 以两种变体存储每张图片:带颜色配置文件和不带颜色配置文件,但这意味着使用两次存储:(

如何高效地将P3色彩空间转换为sRGB?

最佳答案

如果您认为链中的应用程序无法正确显示您的广色域图像,则将它们转换为最小公分母,即 sRGB 会更安全。

您可以使用许多工具执行转换,例如Little CMS、GIMP、Photoshop 将允许您使用各种 gamut mapping algorithms ICC supports 来做到这一点:

  • 绝对比色
  • 相对色度
  • 感性
  • 饱和度

或者您可以通过计算变换矩阵并裁剪色域外值(即负值)来执行从 DCI-P3 到 sRGB 的简单直接转换。您可以use this tool to compute the matrix ,例如使用CAT02色彩适应变换的DCI-P3到sRGB:

 1.1474451 -0.1450487 -0.0025531
-0.0419136  1.0420663 -0.0000536
-0.0174968 -0.0696506  1.0872218

关于android - 在将图像发送到设备之前,我是否需要从图像中删除 p3 色域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943799/

相关文章:

javascript - 从天气网站抓取完整的 html 数据

java - 使用嵌套 addValueEventListener 时 Android firebase 错误

java - 如何在android studio中的视频播放器中获取视频文件目录

java - 使用 OpenCV 在 Java 中进行反投影

php - 什么会导致 imagecolorsforindex() 出现 "color index out of range"错误?

android - 在 list 中指定 Android Market RAM

Python OpenCV - 文件旋转,但颜色值被覆盖

python - 在 open cv 中检测橙色的推荐颜色空间是什么?

color-space - 将 CMYK 色彩空间绘制为 3D 彩色实体

c# - 转换为 YUV/YCbCr 颜色空间 - 许多版本