我RGB
選擇顏色,並將其與顏色名稱如何在目標c中打印RGB顏色的名稱?
我的代碼
color =[UIColor colorWithRed:255/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:pixel[3]/255.0];
電流輸出保存在字符串:Color print: 1 0 0 1
預期輸出:Color = Red
我RGB
選擇顏色,並將其與顏色名稱如何在目標c中打印RGB顏色的名稱?
我的代碼
color =[UIColor colorWithRed:255/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:pixel[3]/255.0];
電流輸出保存在字符串:Color print: 1 0 0 1
預期輸出:Color = Red
我不認爲有辦法打印顏色的名稱。有很多這樣的組合。您可以將RGB值作爲字符串打印:
CGColorRef colorRef = [UIColor grayColor].CGColor;
NSString *colorString = [CIColor colorWithCGColor:colorRef].stringRepresentation;
NSLog(@"colorString = %@", colorString);
要打印實際名稱,您需要自行完成更多工作。用RGB值保存名稱,然後根據您的組合檢索它們。
基金會沒有內置的方法來做到這一點,但如果你真的想要這樣做,由於任何要求。這裏是你可以做什麼:
1-選擇的顏色列表他們的名字here
2-一起拯救那些顏色名稱對RGB值的地方。
3-現在,您可以選擇與RGB值最匹配的顏色名稱。
我已觸摸圖像和提取顏色名稱 – hemant
我的提取顏色代碼無符號字符像素[4] = {0}; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(pixel,1,1,8,4,colorSpace,kCGImageAlphaPremultipliedLast); CGContextTranslateCTM(context,-point.x,-point.y); [self.view。layer renderInContext:context]; CGContextRelease(context); CGColorSpaceRelease(colorSpace); UIColor * color = [UIColor colorWithRed:pixel [0] /255.0 green:pixel [1] /255.0 blue:pixel [2] /255.0 alpha:pixel [3] /255.0]; – hemant
我只是試過這個,它似乎工作得很好。我選擇的硬編碼值取決於事物對我的看法。如果「明亮」和「黑暗」對你來說意味着別的東西,隨時可以改變它們。
- (NSString*)colorNameFromColor:(NSColor*)chosenColor
{
NSColor* calibratedColor = [chosenColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
CGFloat hue;
CGFloat saturation;
CGFloat brightness;
[calibratedColor getHue:&hue
saturation:&saturation
brightness:&brightness
alpha:nil];
// I found that when the saturation was below 1% I couldn't tell
// the color from gray
if (saturation <= 0.01)
{
saturation = 0.0;
}
NSString* colorName = @"";
// If saturation is 0.0, then this is a grayscale color
if (saturation == 0.0)
{
if (brightness <= 0.2)
{
colorName = @"black";
}
else if (brightness > 0.95)
{
colorName = @"white";
}
else
{
colorName = @"gray";
if (brightness < 0.33)
{
colorName = [@"dark " stringByAppendingString:colorName];
}
else if (brightness > 0.66)
{
colorName = [@"light " stringByAppendingString:colorName];
}
}
}
else
{
if ((hue <= 15.0/360.0) || (hue > 330.0/360.0))
{
colorName = @"red";
}
else if (hue < 45.0/360.0)
{
colorName = @"orange";
}
else if (hue < 70.0/360.0)
{
colorName = @"yellow";
}
else if (hue < 150.0/360.0)
{
colorName = @"green";
}
else if (hue < 190.0/360.0)
{
colorName = @"cyan";
}
else if (hue < 250.0/360.0)
{
colorName = @"blue";
}
else if (hue < 290.0/360.0)
{
colorName = @"purple";
}
else
{
colorName = @"magenta";
}
if (brightness < 0.5)
{
colorName = [@"dark " stringByAppendingString:colorName];
}
else if (brightness > 0.8)
{
colorName = [@"bright " stringByAppendingString:colorName];
}
}
return colorName;
}
這不好,想要所有的顏色名稱,不知道它或建議? –
轉到throuhg此鏈接..我 最佳的解決方案。也可能會幫助你們。
什麼重寫'description',檢查它是否匹配任何「已知的iOS」色彩,並打印成? – Larme
[我的答案在這裏](http://stackoverflow.com/questions/19454398/java-applet-get-the-name-of-the-colour-being-used-in-paint/19461345#19461345)可能是使用。 – user1118321