単色のUIImageを生成する
HTML(CSS)での色指定によく使う16進数(HEX)形式の色指定から、単色のUIImageを生成するメソッドの例です。「#00ff00」の形式しか想定していませんので、状況に応じてはエラー処理等の追加は必要かと思います。まずは16進数表記の文字列をUIColorに変換し、その色を使ってCGContextに塗りつぶしを指示する、という流れです。画像のサイズは32x32に固定されています。
// hex will be #ff00ff style.
+ (UIImage *)imageWithHexCode:(NSString *)hex {
NSString *_hex = [hex substringFromIndex:1];
unsigned int baseValue;
[[NSScanner scannerWithString:_hex] scanHexInt:&baseValue];
float red = ((baseValue >> 16) & 0xFF)/255.0f;
float green = ((baseValue >> 8) & 0xFF)/255.0f;
float blue = ((baseValue >> 0) & 0xFF)/255.0f;
UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
CGRect rect = CGRectMake(0.0f, 0.0f, 32.0f, 32.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について