CMKY与RGB的转换

简介: CMKY与RGB的转换

有朋友可能会问,CMYK是浮点数,要保存怎么办?可以乘0xFF(255)。


void RGB2CMYK(int red, int green, int blue,
double& c, double& m, double& y, double& k)
{
    c = (0xFF - red  ) / 255.0;
    m = (0xFF - green) / 255.0;
    y = (0xFF - blue ) / 255.0;
    k = Math.min(c, Math.min(m, y));
    if (k == 1.0)
    {
        c = m = y = 0;
    }
    else
    {
        c = (c - k) / (1 - k);
        m = (m - k) / (1 - k);
        y = (y - k) / (1 - k);
    }
}
void CMYK2RGB(double c, double m, double y, double k, int& r, int& g, int& b)
{
    r = (int)((1.0 - c) * (1.0 - k) * 0xFF);
    g = (int)((1.0 - m) * (1.0 - k) * 0xFF);
    b = (int)((1.0 - y) * (1.0 - k) * 0xFF);
}


目录
相关文章
|
存储 编解码 Android开发
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888等图像色彩编码格式区别
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888都是常见的图像颜色编码格式,它们之间的主要区别在于色彩空间和数据排列方式。
208 0
|
计算机视觉
计算机图形|RGB与HSV模型的转化
计算机图形|RGB与HSV模型的转化
150 0
计算机图形|RGB与HSV模型的转化
RGB颜色值与十六进制颜色码怎么相互转换?
RGB颜色值与十六进制颜色码怎么相互转换?
180 0
RGB颜色值与十六进制颜色码怎么相互转换?
|
存储 算法 知识图谱
RGB与YUV相互转换
本文介绍YUV跟RGB互转的各种公式,以及推导原理
359 0
RGB转换为NV12的代码
RGB转换为NV12的代码
247 0
YUV 与 RGB的转换
RGB 转换成 YUV Y = (0.257 * R) + (0.504 * G) + (0.
5421 0
|
编解码
理解 RGB & YUV 颜色编码
理解 RGB & YUV 颜色编码
458 0
理解 RGB & YUV 颜色编码
|
前端开发 JavaScript Java
通过canvas转换颜色为RGBA格式及性能问题
通过canvas转换颜色为RGBA格式及性能问题
通过canvas转换颜色为RGBA格式及性能问题
使用FFMPEG的sws_scale函数实现各种原始颜色格式互转(YUV\RGB\)
使用FFMPEG的sws_scale函数实现各种原始颜色格式互转(YUV\RGB\)
842 0