如何从RGB值创建NSColor?使用RGB值创建NSColor
回答
每NSColor文档:
NSColor *myColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:1.0f];
float red = 0.5f;
float green = 0.2f;
float blue = 0.4f;
float alpha = 0.8f;
NSColor *rgb = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
另外不要忘记从你的实际RGB值做下面的转换,让我们从Photoshop说...
的RGB (226,226,226)可以被实例化为使用以下值的NSColor:
Red: 226/255 = 0.886...
Green: 226/255 = 0.886...
Blue: 226/255 = 0.886...
[NSColor colorWithDeviceRed:0.886f green:0.886f blue:0.886f alpha:1.0f];
为什么255? 8位颜色通道的范围从0到255(含)。标准化时,这将缩放到[0,1](含)范围内。请参阅从标准化值到非标准化值的转换参考,反之亦然。
参考
这可能对其他人很明显,但为什么+1?这是因为256是一个更好的数字,更多的因素,因此更少的舍入误差/小数点? – 2015-09-07 13:51:18
这个答案有点不对。 8位RGB颜色分量值范围从0到255,总共是256个值。因此,映射到0到1范围内的RGB值的正确方法是除以255,即:“red = 226/255”。通过添加尴尬的1并除以256给出非常相似但稍微不正确的结果,可以通过考虑如果颜色分量为0时会发生什么来验证:零除以255仍然是零,但是“(0 + 1)/ 256'> 0. – davidf2281 2016-07-31 10:57:55
扩展斯威夫特2
extension NSObject {
func RGB(r:CGFloat, g:CGFloat, b:CGFloat, alpha:CGFloat? = 1) -> NSColor {
return NSColor(red: r/255, green: g/255, blue: b/255, alpha: alpha!)
}
}
然后只需调用
RGB(r: 16, g: 105, b: 125)
或
RGB(r: 16, g: 105, b: 125, alpha: 0.5)
为什么要创建NSObject的扩展名而不是NSColor? – ColdGrub1384 2018-02-20 16:02:26
我更喜欢只写RGB(... – emreoktem 2018-02-20 21:32:05
但是如果你创建NSObject的扩展,你需要调用这样的函数:NSObject()。RGB(_ :, g:,b :)或任何NSObject子类 – ColdGrub1384 2018-02-20 21:39:05
- 1. 来自NSColor的RGB值
- 2. 问题与RGB和NSColor
- 3. 将使用colorWithPatternImage创建的NSColor转换为CGColor?
- 4. 如何在PL/SQL中创建RGB值?
- 5. 如何使用java创建RGB像素值的有效图像
- 6. 使用特定的rgb值创建PNG(mac)
- 7. 在iOS中创建RGB CVOpenGLESTeureure
- 8. NSColor alpha值darkens颜色
- 9. 如何用RGB数据创建CGImage?
- 10. 值到RGB值
- 11. 如何使用Visual C++创建RGB位图?
- 12. 如何使用2d rgb数组在C++中创建图像?
- 13. 使用RGB图像创建HSV直方图
- 14. 使用AV Foundation可以从RGB帧创建视频文件
- 15. 问题与setPatternPhase:在NSSplitView NSColor使用colorWithPatternImage:
- 16. 创建一个RGB复合SAR图像
- 17. 从RGB数据创建图像?
- 18. 如何从RGB颜色创建位图
- 19. NSImage + NSColor + pattern
- 20. sRGB到NSColor
- 21. 从NSColor中提取32位RGBA值
- 22. 如何使用JMagick获取RGB值?
- 23. 使用PIL分析像素RGB值
- 24. 在TKinter中使用RGB值?例如。 255,0,0
- 25. rgb值的Argb值
- 26. 改变RGB值
- 27. RenderedImage - > RGB值
- 28. HBRUSH到RGB值
- 29. 减去RGB值
- 30. rgb值向量QImage
您应该使用,而不是1.0 1.0F,1.0是双,这是不是为iPhone本机类型。 – nash 2009-12-21 05:33:05
你是对的 - 快速输入代码的危险! – 2009-12-21 05:34:54
可能值得说明的是,颜色值从0.0到1.0。 此外,“校准”版本确实比使用此方法的正确变体更可能。你想在所有的颜色内部交易中使用NSCalibratedRGBColorSpace(对应于[NSColorSpace genericRGBColorSpace])。只有在输出到已知特定设备时才使用“设备”色彩空间变体。 – Kelan 2009-12-21 07:38:00