首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将NSNamedColorSpace颜色转换为NSCalibratedRGBColorSpace颜色?然后去狮子镇的CGColor?

如何将NSNamedColorSpace颜色转换为NSCalibratedRGBColorSpace颜色?然后去狮子镇的CGColor?
EN

Stack Overflow用户
提问于 2013-09-20 15:03:51
回答 1查看 1.4K关注 0票数 0

我想转换任何颜色来作为CGColor的输入。在comming colour为空格NSCalibratedRGBColorSpace之前,一切运行正常,但是当它是NSNamedColorSpace (NSSelectedMenuItemColor)类型时,它不会在lion中产生正确的结果。我也尝试过获取patternImage,但NSNamedColorSpace colours不响应该接口。我相信很多人都遇到过这个问题,如果可以的话,请帮助我。

我试图隐藏的代码的一部分

代码语言:javascript
复制
       if ([colorSpaceName isEqualToString:NSNamedColorSpace])
        {
            color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
        }

        NSColorSpace *colorSpaceNS = [color colorSpace];
        colorSpace = [colorSpaceNS CGColorSpace];

        size_t numberOfComponents = CGColorSpaceGetNumberOfComponents(colorSpace);
        CGFloat components[numberOfComponents];
        [color getComponents:components];
        requiredColor = CGColorCreate(colorSpace, components);
        CGColorSpaceRelease(colorSpace);
EN

回答 1

Stack Overflow用户

发布于 2013-12-03 15:42:54

最简单的方法(OS X 10.8或更高版本):

代码语言:javascript
复制
if ([colorSpaceName isEqualToString:NSNamedColorSpace])
        {
            color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
        }

        requiredColor = [color CGColor];

第二种方式(OS X 10.0或更高版本):

代码语言:javascript
复制
if ([colorSpaceName isEqualToString:NSNamedColorSpace])        {
      color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
}

CGFloat red, green, blue, alpha;
[color getRed:&red green:&green blue:&blue alpha:&alpha];

requiredColor = CGColorCreateGenericRGB(red, green, blue, alpha);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18910772

复制
相关文章

相似问题

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