我已经检查了几个如何将UIColor代码转换为HEX的链接,但是我不确定如何调用该方法以在NSLog中显示它们。我没有发表评论的声誉,因此发布帖子是我的最后选择。
我希望在日志中运行我的应用程序时显示它。
第二,我在哪里输入RGB颜色编号(R = 30,G = 171,B =
13)?我看到所有示例都使用通常指向索引位置的数组[0],[1],[2],那么我应该在哪里添加颜色值?
我有以下代码:
- (NSString *) hexFromUIColor:(UIColor *)color {
if (CGColorGetNumberOfComponents(color.CGColor) < 4) {
const CGFloat *components = CGColorGetComponents(color.CGColor);
color = [UIColor colorWithRed:components[30] green:components[141] blue:components[13] alpha:components[1]];
}
if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {
return [NSString stringWithFormat:@"#FFFFFF"];
}
return [NSString stringWithFormat:@"#%02X%02X%02X", (int)((CGColorGetComponents(color.CGColor))[0]*255.0), (int)((CGColorGetComponents(color.CGColor))[1]*255.0), (int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
}
我试图在viewDidLoad中调用该方法,但是如果没有UIColor它将无法工作。我相信这很简单。
感谢任何回答。
我在viewDidLoad中使用什么代码来调用此方法以便在NSLog中显示?
func hexStringFromColor(color: UIColor) -> String {
let components = color.cgColor.components
let r: CGFloat = components?[0] ?? 0.0
let g: CGFloat = components?[1] ?? 0.0
let b: CGFloat = components?[2] ?? 0.0
let hexString = String.init(format: "#%02lX%02lX%02lX", lroundf(Float(r * 255)), lroundf(Float(g * 255)), lroundf(Float(b * 255)))
print(hexString)
return hexString
}
func colorWithHexString(hexString: String) -> UIColor {
var colorString = hexString.trimmingCharacters(in: .whitespacesAndNewlines)
colorString = colorString.replacingOccurrences(of: "#", with: "").uppercased()
print(colorString)
let alpha: CGFloat = 1.0
let red: CGFloat = self.colorComponentFrom(colorString: colorString, start: 0, length: 2)
let green: CGFloat = self.colorComponentFrom(colorString: colorString, start: 2, length: 2)
let blue: CGFloat = self.colorComponentFrom(colorString: colorString, start: 4, length: 2)
let color = UIColor(red: red, green: green, blue: blue, alpha: alpha)
return color
}
func colorComponentFrom(colorString: String, start: Int, length: Int) -> CGFloat {
let startIndex = colorString.index(colorString.startIndex, offsetBy: start)
let endIndex = colorString.index(startIndex, offsetBy: length)
let subString = colorString[startIndex..<endIndex]
let fullHexString = length == 2 ? subString : "\(subString)\(subString)"
var hexComponent: UInt32 = 0
guard Scanner(string: String(fullHexString)).scanHexInt32(&hexComponent) else {
return 0
}
let hexFloat: CGFloat = CGFloat(hexComponent)
let floatValue: CGFloat = CGFloat(hexFloat / 255.0)
print(floatValue)
return floatValue
}
如何使用
let red = CGFloat(30.0)
let green = CGFloat(171.0)
let blue = CGFloat(13.0)
let alpha = CGFloat(1.0)
let color = UIColor(red: CGFloat(red/255.0), green: CGFloat(green/255.0), blue: CGFloat(blue / 255.0), alpha: alpha)
let colorCode = self.hexStringFromColor(color: color)
print(colorCode)
let resultColor = self.colorWithHexString(hexString: colorCode)
print(resultColor)
- (NSString *)hexStringFromColor:(UIColor *)color {
const CGFloat *components = CGColorGetComponents(color.CGColor);
CGFloat r = components[0];
CGFloat g = components[1];
CGFloat b = components[2];
return [NSString stringWithFormat:@"#%02lX%02lX%02lX",
lroundf(r * 255),
lroundf(g * 255),
lroundf(b * 255)];
}
获取十六进制代码字符串后,调用以下方法获取 UIColor
- (UIColor *) colorWithHexString: (NSString *) hexString
{
NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString];
NSLog(@"colorString :%@",colorString);
CGFloat alpha, red, blue, green;
// #RGB
alpha = 1.0f;
red = [self colorComponentFrom: colorString start: 0 length: 2];
green = [self colorComponentFrom: colorString start: 2 length: 2];
blue = [self colorComponentFrom: colorString start: 4 length: 2];
return [UIColor colorWithRed: red green: green blue: blue alpha: alpha];
}
- (CGFloat) colorComponentFrom: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length {
NSString *substring = [string substringWithRange: NSMakeRange(start, length)];
NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring];
unsigned hexComponent;
[[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent];
return hexComponent / 255.0;
}
如何使用
// ( R = 30, G = 171, B = 13)?
CGFloat red = 30.0;
CGFloat green = 171.0;
CGFloat blue = 13.0;
CGFloat alpha = 255.0
UIColor *color = [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:(alpha/255.0)];
NSString *colorCode = [self hexStringFromColor:color];
NSLog(@"Color Code: %@", colorCode);
UIColor *resultColor = [self colorWithHexString:colorCode];
问题内容: 我正在开发通过与服务器进行通讯的移动应用。这是我第一次使用PHP。我设法将数据上传到数据库中。现在,我需要发送图像以将其存储在ftp服务器中。为此,我转换并从我的应用程序发送。 服务器端 我得到了十六进制代码,但不确定如何将其转换为图像并存储在ftp服务器中。我在这里真的很挣扎。我用谷歌搜索,但找不到确切的一个。 任何帮助深表感谢。 问题答案: 将十六进制字符串转换为二进制: 等价于,
问题内容: 给定一个css颜色值,例如: 假设背景为白色,如何将其转换为考虑了alpha分量的RGB十六进制值? 问题答案: 由于alpha值都会减弱背景色和颜色值,因此可以实现以下目的: (以交互方式进行尝试:http : //marcodiiga.github.io/rgba-to-rgb- conversion )
问题内容: 在这里解决Jeremy的响应:将十六进制颜色转换为RGB,反之亦然,我能够获得一个python程序来转换预设的颜色十六进制代码(示例#B4FBB8),但是从最终用户的角度来看,我们不能要求人们进行编辑代码并从那里运行。如何提示用户输入一个十六进制值,然后从那里吐出一个RGB值? 到目前为止,这是我的代码: 使用该行,我可以吐出正确的RGB值,即(180,251,184) 这可能非常简单
问题内容: 如何在Java中将十六进制颜色转换为RGB代码?在Google中,大多数示例是关于如何从RGB转换为十六进制的。 问题答案: 我想应该这样做:
问题内容: 我想在Golang中将int转换为hex。在strconv中,有一种将字符串转换为十六进制的方法。是否有类似的方法从int获取十六进制字符串? 问题答案: 由于hex是Integer文字,因此您可以使用,和或格式向fmt包询问该整数的字符串表示形式。参观游乐场 输出:
问题内容: 关于从到的数据复制,我有以下问题: 上,我有一张表格,其中包含(为简单起见)两列:和。 被定义为。定义为。 通过将字符串转换为十六进制数,例如,从SQL被复制到或以通过使用以下SQL查询: 会在哪儿。 换句话说,COL1包含十六进制值,但为字符串(抱歉,如果措词不正确)。 我需要将十六进制值转换回字符串并将此值放入。 SQL查询应该执行什么转换?我知道该怎么做,但不知道如何做。 注意: