我正在尝试从一个CGColor中获取RGB值,我使用下面的代码。问题是红色、绿色和蓝色的所有返回值总是以浮点型返回,并且它们总是介于0和1之间,例如:rgb(0.000000, 0.847059, 0.945098)
如何将这些values转换为实际的RGB值?
int numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
CGFloat red = components[0];
CGFloat green = components[1];
CGFloat blue = components[2];
CGFloat alpha = components[3];
}发布于 2011-07-19 05:11:43
它返回以百分比表示的正确的RGB值。因此,如果你的红色= .8,它是255的80%,即204
因此,您的代码可能如下所示:
int numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
NSInteger red = (NSInteger) components[0] * 255;
NSInteger green = (NSInteger) components[1] * 255;
NSInteger blue = (NSInteger) components[2] * 255;
CGFloat alpha = components[3];
}https://stackoverflow.com/questions/6739428
复制相似问题