首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CMYK颜色空间绘制为三维彩色实体

将CMYK颜色空间绘制为三维彩色实体
EN

Stack Overflow用户
提问于 2017-03-31 02:27:51
回答 1查看 305关注 0票数 3

我使用下面的POV循环来绘制其他颜色空间中的sRGB坐标。该环只沿外表面生成点,然后将它们与三角形连接起来。因为sRGB空间是一种扭曲的立方体,这意味着6个外面和8个顶点。

代码语言:javascript
复制
#macro cie_calc_gamut_xyz_srgb()
    #for (i, 0, cie_sample_count_srgb)
        #for (j, 0, cie_sample_count_srgb)
            // side 0 & 3
            #local cooRGB = <i/cie_sample_count_srgb,j/cie_sample_count_srgb,0>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[0][i][j] = cooXYZ;
            #local cooRGB = <i/cie_sample_count_srgb,j/cie_sample_count_srgb,1>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[3][i][j] = cooXYZ;
            // side 1 & 4
            #local cooRGB = <i/cie_sample_count_srgb,0,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[1][i][j] = cooXYZ;
            #local cooRGB = <i/cie_sample_count_srgb,1,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[4][i][j] = cooXYZ;
            // side 2 & 5
            #local cooRGB = <0,i/cie_sample_count_srgb,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[2][i][j] = cooXYZ;
            #local cooRGB = <1,i/cie_sample_count_srgb,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[5][i][j] = cooXYZ;
        #end
    #end
#end

这很好,因为几乎所有的颜色空间都是三维的。下面是输出的一个示例:

然而,我想做同样的CMYK颜色空间。我遇到的问题是,它有4个参数,而不是3个。同样,我只想在最外层绘制点,并将它们与三角形连接起来。我不认为由此产生的颜色固体是四维的,但我完全不知道如何进行。有人知道该怎么做吗?谢谢。

注意,XYZ是一个颜色空间。链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 17:59:50

这里的主要问题是,CMYK不是一个合适的颜色空间--它更像是一个打印过程,在坐标上有一个额外的自由度来映射,然后全部映射到可见颜色。使K与100% CMY不同的是在成像软件中无法模拟的着色剂的化学特性。(我试图在谷歌上找到一个关于CMYK不是颜色空间的很好的参考-试一试,你会发现有科学背景的文本倾向于将CMYK称为“颜色模型”)。

无论如何,有4个坐标渲染无效的大多数已知的处理颜色的成像算法,这是GIMP从来没有,也从来没有考虑过有一个内部CMYK颜色空间。(向这个空间输出是可以的,但不需要进行工作)。

总之,您应该做的是取一个固定的K值,并使用变化的CMY呈现您的多维数据集。重复额外的立方体,如果需要的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43131375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档