
我制作了一个小型Cocoa应用程序,可以绘制自定义视图.这是代码中有趣的部分.请注意,我正在初始化SRGB空间中的颜色.
class VIEw: NSVIEw { overrIDe func drawRect(dirtyRect: NSRect) { let components : [CGfloat] = [156.0/255.0,254.0/255.0,1] let color = NScolor.init(SRGBRed: components[0],green: components[1],blue: components[2],Alpha: components[3]) color.setFill() NSRectFill(self.bounds) } } 这是它绘制的内容. (没关系光标的部分.我删除了窗口阴影,这样就可以更容易地与其他窗口并排查看.)
这是Sketch文件部分:
将它们放在一起,这里是Sketch文件和自定义视图的并排,以及显示鼠标光标下的颜色值的Xscope放大镜.
将鼠标悬停在Sketch文件上时,我看到:
将鼠标悬停在我的自定义视图上时,我会看到:
您可以看到Xscope读取的黑色鼠标光标下的像素颜色值明显不同.我的Retina Macbook Pro显示器的颜色也有很大不同,但有趣的是,在捕获的屏幕截图PNG中没有那么不同.
但是:到目前为止,这一切都是通过默认显示设置和颜色配置文件“color LCD”完成的(硬件是Retina Macbook Pro及其内置显示屏).当我在OSX设置应用程序中手动将显示配置文件更改为“sRGB IEC61966-2.1”,然后使用Xscope再次采样颜色时,您可以看到这些采样值:
在对自定义视图进行采样时:
最有趣的是,您可以看到Xscope在我的自定义视图上采样的值与指定的值完全匹配,并且颜色在视觉上也是正确的.但是,当然,我不能让我的用户更改他们的显示配置文件.
我的问题:如何使我的自定义视图颜色与Sketch中的颜色(用于目视检查和使用Xscope放大镜采样时)与默认的彩色LCD显示配置文件完全匹配?
解决方法 刚刚解决了这个问题.这是我的过程.刚刚在Retina Macbook Pro上测试过.>打开草图.
>开放式数字色度计(安装在OSX上)
>切换到’以通用RGB显示’
>在菜单中,确保’查看 – >显示值 – >作为十进制`
>将鼠标悬停在草图中的图稿颜色上并记下值(例如0,150,200)
在Cocoa中使用该值:
-(voID)drawRect:(NSRect)dirtyRect { [[NScolor colorWithCalibratedRed:0/255.0 green:150/255.0 blue:200/255.0 Alpha:1] set]; NSRectFill(self.bounds);} 这应该有效,因为’Generic RGB’是一个独立于设备的空间,相当于Cocoa中的’校准’颜色空间.
总结以上是内存溢出为你收集整理的如何让我的Cocoa应用程序精确绘制我的设计师在Sketch中指定的颜色?全部内容,希望文章能够帮你解决如何让我的Cocoa应用程序精确绘制我的设计师在Sketch中指定的颜色?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)