- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
简单的问题,很可能是复杂的答案:
如何从 UIColor 对象获取 CMYK 和 Lab 值(如果有帮助,我知道其中的 RGB 值)?
我发现这个关于获取 CMYK 值,但我无法从中获得任何准确的值,尽管它无处不在,但我听说它不是一个很好的片段。
CGFloat rgbComponents[4];
[color getRed:&rgbComponents[0] green:&rgbComponents[1] blue:&rgbComponents[2] alpha:&rgbComponents[3]];
CGFloat k = MIN(1-rgbComponents[0], MIN(1-rgbComponents[1], 1-rgbComponents[2]));
CGFloat c = (1-rgbComponents[0]-k)/(1-k);
CGFloat m = (1-rgbComponents[1]-k)/(1-k);
CGFloat y = (1-rgbComponents[2]-k)/(1-k);
最佳答案
对于基于 ICC 的颜色转换,您可以使用 Little Color Management System . (我刚刚将下载存档中的所有 .c 和 .h 文件添加到一个 iOS Xcode 项目中。它编译并运行了以下代码,没有问题。)
备注:RGB 和 CMYK 是依赖设备的色彩空间,Lab 是独立设备的色彩空间。因此,要从 RGB 转换为 Lab,您必须选择一个与设备无关(或“校准”)的 RGB 颜色空间进行转换,例如 sRGB。
Little CMS 带有用于 sRGB 和 Lab 色彩空间的内置配置文件。从 sRGB 到 Lab 的转换如下所示:
创建颜色变换:
cmsHPROFILE rgbProfile = cmsCreate_sRGBProfile();
cmsHPROFILE labProfile = cmsCreateLab4Profile(NULL);
cmsHTRANSFORM xform = cmsCreateTransform(rgbProfile, TYPE_RGB_FLT, labProfile,
TYPE_Lab_FLT,
INTENT_PERCEPTUAL, 0);
cmsCloseProfile(labProfile);
cmsCloseProfile(rgbProfile);
转换颜色:
float rgbValues[3];
// fill rgbValues array with input values ...
float labValues[3];
cmsDoTransform(xform, rgbValues, labValues, 1);
// labValues array contains output values.
处理颜色变换:
cmsDeleteTransform(xform);
当然,转换只会创建一次并用于所有颜色转换。
对于 RGB 到 CMYK 的转换,您也可以使用 Little CMS,但您必须提供 ICC 配置文件,例如一个来自免费的 Adobe 下载页面 ICC profile downloads for Mac OS .
RGB 到 CMYK 转换的代码示例:
float rgb[3]; // fill with input values (range 0.0 .. 1.0)
float cmyk[4]; // output values (range 0.0 .. 100.0)
cmsHPROFILE rgbProfile = cmsCreate_sRGBProfile();
// The CMYK profile is a resource in the application bundle:
NSString *cmykProfilePath = [[NSBundle mainBundle] pathForResource:@"YourCMYKProfile.icc" ofType:nil];
cmsHPROFILE cmykProfile = cmsOpenProfileFromFile([cmykProfilePath fileSystemRepresentation], "r");
cmsHTRANSFORM xform = cmsCreateTransform(rgbProfile, TYPE_RGB_FLT, cmykProfile,
TYPE_CMYK_FLT,
INTENT_PERCEPTUAL, 0);
cmsCloseProfile(cmykProfile);
cmsCloseProfile(rgbProfile);
cmsDoTransform(xform, rgb, cmyk, 1);
cmsDeleteTransform(xform);
关于objective-c - UIColor CMYK 和 Lab 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912938/
假设CMYK中定义了两种颜色: color1 = 30, 40, 50, 60 color2 = 50, 60, 70, 80 如果要打印它们,生成的颜色会有什么值? color_new = min(
我很难让 ImageMagick 的 identify 将 PDF 识别为 CMYK。 基本上,假设我正在使用 pdflatex 构建这个文件 test.tex: \documentclass[a4p
我使用此代码段在 javascript 中将 RGB 颜色转换为 CMYK: function RgbToCmyk(R,G,B) { if ((R == 0) && (G == 0) && (
将 CMYK eps 转换为 jpeg 时,Ghostscript 将颜色空间更改为 RGB。问题是在转换过程中保持颜色空间不变。提前谢谢。 最佳答案 假设您要将 EPS 中的任何 RGB 转换为 C
整整一个月,我一直在尝试找出如何加载 cmyk 图像(8 位 tiff)并进行 UCA、UCR、GCR 转换。 我知道这种转换的公式,但我在使用 C++ 或 C# 加载 cmyk 图像时遇到问题。 我
我有一个关于 C++ 颜色配置文件转换的项目,其中的想法是使用 CIELAB 作为 RGB 和所有其他(CMY;CMYK;HSV;HSL;...)之间的过渡。但我有一个大问题。我到处搜索,但找不到任何
我正在做一个项目,在那个项目中我需要能够: 获取一帧视频 将其更改为 CMYK 尝试渲染该帧 你们有什么建议吗? 为了获得帧,我想我可以使用 ffmpeg。 我认为写信的人 Android proce
我必须使用 RGB 值设置 div 的背景颜色。我可以通过这种方式。 现在,因为我也有 CMYK (0,1,0.5,0) 值,所以你能帮我用这些值实现相同的效果吗。 我这样做了,但是没有收获。
如何在 php 中将十六进制颜色值转换为等效的 CMYK 颜色值? 我想编写一个函数来执行此操作。但是我不知道如何将十六进制转换为 CMYK eg: 最佳答案 function hex2rgb($h
我需要在我的网页上使用 CMYK 颜色。有什么方法可以在 CSS 中使用 CMYK,或者可以使用 JavaScript 将 CMYK 转换为 RGB? 编辑: 我的意思是我有 CMYK 符号的颜色创建
将 CMYK 编码的颜色转换为其十六进制等效值的公式是什么? 最佳答案 我有一个坏消息要告诉你:没有简单的公式。青色、品红色和黄色是复杂的墨水颜色,转换为 RGB 取决于 colour profile
我想在不使用自动转换工具或库的情况下将缓冲图像从 RGBA 格式转换为 CYMK 格式,因此我尝试从使用 BufferedImage.getRGB() 获得的各个像素中提取 RGBA 值。这是我到目前
我知道 RGB 用于显示器,CMYK 用于打印,但我想在不进行任何转换的情况下使用 CMYK。我想上传 CMYK 图像 (jpeg) 并打印。但是当我使用 com.sun.image.codec.jp
我需要将 CMYK 图像转换为灰度 CMYK 图像。起初我以为我可以使用与 RGB -> 灰度转换相同的方法,比如 (R + G + B)/3 或 max(r, g, b)/2 + min(r, g,
众所周知,ie8 不支持 cmyk jpg 图像,它根本不渲染它们:-( 这是一篇关于它的帖子 http://www.plaveb.com/blog/cmyk-images-not-displayed
我想使用 java 打印机制绘制一些 Graphics2D 对象。所以我必须定义一个 Printable 的子类。 public class PrintCMYK() implements Printa
我可以使用 CMYK 格式设置位图中像素的颜色吗?还是必须将颜色转换为 RGB 值? 最佳答案 您需要先转换。以防万一您想知道它是如何完成的: R、G、B 值在 0..255 范围内给出。红色 (R)
我正在尝试使用 4 个 UISliders 来更改 CMYK 的值,然后在 View 中显示颜色,但我尝试了不同的公式,但仍然没有得到正确的值,所以我找到了这个 answer在堆栈溢出中但适用于 an
我正在尝试使用彩色按钮混合任何颜色组合,这些按钮输出特定的十六进制数字,并结合 Bootstrap 中的 slider ,允许用户指示他们想要使用的颜色百分比。 我无法让 slider 正常运行,我也
我正在从事一个项目,该项目要求我分离出 CYMK 图像中的每种颜色并生成将在特殊半色调打印机上打印的半色调图像。使用的方法类似于丝网打印,因为过程几乎相同。拍照并分解每个颜色 channel 。然后为
我是一名优秀的程序员,十分优秀!