Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用Objective C,我需要将4种CMYK颜色组合成一种。_Objective C_Image Processing_Colors - Fatal编程技术网

Objective c 使用Objective C,我需要将4种CMYK颜色组合成一种。

Objective c 使用Objective C,我需要将4种CMYK颜色组合成一种。,objective-c,image-processing,colors,Objective C,Image Processing,Colors,作为一名客观的C新手,我不是一名图形程序员,我正在为苹果提供的Xcode SDK 4.1版的各种图形库而挣扎。有Cocoa、OpenGL ES、Quartz 2D和各种其他高端和低端图形功能层(框架)。我只想把4种特定的颜色组合起来,在iPad、iPhone和iPodtouch上展示 我意识到我可以将CMYK颜色转换成RGBA,从光学角度看没有太大区别,但我想在Objective C中将颜色组合成一个颜色对象是我的问题。我已经研究了视图的分层、石英中图像的混合模式等。我不确定是否首先需要创建BM

作为一名客观的C新手,我不是一名图形程序员,我正在为苹果提供的Xcode SDK 4.1版的各种图形库而挣扎。有Cocoa、OpenGL ES、Quartz 2D和各种其他高端和低端图形功能层(框架)。我只想把4种特定的颜色组合起来,在iPad、iPhone和iPodtouch上展示


我意识到我可以将CMYK颜色转换成RGBA,从光学角度看没有太大区别,但我想在Objective C中将颜色组合成一个颜色对象是我的问题。我已经研究了视图的分层、石英中图像的混合模式等。我不确定是否首先需要创建BMP文件,或者是什么。我想对于一个新手来说,这一切都有点让人不知所措,我希望能得到一些关于图形概念/术语的指导,然后也许能帮助选择哪个图形框架可以完成这项工作。

没有理由从CMYK转换为RGB。您只需要使用
CGColor
和CYMK颜色空间创建颜色

CGColorSpaceRef cmykColorSpace = CGColorSpaceCreateDeviceCMYK();
CGFloat colors[5] = {1, 1, 1, 1, 1}; // CMYK+Alpha
CGColorRef cgColor = CGColorCreate(cmykColorSpace, colors);
UIColor *uiColor = [UIColor colorWithCGColor:cgColor];
CGColorRelease(cgColor);
CGColorSpaceRelease(cmykColorSpace);

您现在可以使用该颜色执行任何操作。

没有理由将CMYK转换为RGB。您只需要使用
CGColor
和CYMK颜色空间创建颜色

CGColorSpaceRef cmykColorSpace = CGColorSpaceCreateDeviceCMYK();
CGFloat colors[5] = {1, 1, 1, 1, 1}; // CMYK+Alpha
CGColorRef cgColor = CGColorCreate(cmykColorSpace, colors);
UIColor *uiColor = [UIColor colorWithCGColor:cgColor];
CGColorRelease(cgColor);
CGColorSpaceRelease(cmykColorSpace);

你现在可以用这种颜色做任何你想做的事情。

罗布的回答很酷-我从来都不知道CGColorCreate函数

如果你想调整颜色组合的方式,你可以在UIColor上使用我的分类——如果你选择的话,你可以在类方法中更改混合算法(我希望我编写的那些方法很好)。该类别还支持在RGB或RYB中组合

享受


Damien

Rob的回答很酷-我从来不知道CGColorCreate函数

如果你想调整颜色组合的方式,你可以在UIColor上使用我的分类——如果你选择的话,你可以在类方法中更改混合算法(我希望我编写的那些方法很好)。该类别还支持在RGB或RYB中组合

享受


达米恩

谢谢罗布。我很抱歉没有在这个网站上对颜色混合进行适当的搜索,并找到了许多关于我如何混合cmyk颜色的解释。您的代码示例与我在Quartz中尝试的非常相似。谢谢Rob。我很抱歉没有在这个网站上对颜色混合进行适当的搜索,并找到了许多关于我如何混合cmyk颜色的解释。您的代码示例很像我在Quartz中尝试的。