NSString型の文字列を画像に変換します。「サイズを指定して空のUIImageオブジェクトを生成する - iOSアプリ開発の逆引き辞典」をベースとしています。
- (UIImage *)imageWithString:(NSString *)text { // 描画するサイズ CGSize size = CGSizeMake(34, 18); // ビットマップ形式のグラフィックスコンテキストの生成 // 第2引数のopaqueを`NO`にすることで背景が透明になる UIGraphicsBeginImageContextWithOptions(size, NO, 0); // 描画する文字列の情報を指定する //-------------------------------------- // 文字描画時に反映される影の指定 NSShadow *shadow = [[NSShadow alloc] init]; shadow.shadowOffset = CGSizeMake(0.f, -0.5f); shadow.shadowColor = [UIColor darkGrayColor]; shadow.shadowBlurRadius = 0.f; // 文字描画に使用するフォントの指定 UIFont *font = [UIFont boldSystemFontOfSize:14.0f]; // パラグラフ関連の情報の指定 NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; style.alignment = NSTextAlignmentCenter; style.lineBreakMode = NSLineBreakByClipping; NSDictionary *attributes = @{ NSFontAttributeName: font, NSParagraphStyleAttributeName: style, NSShadowAttributeName: shadow, NSForegroundColorAttributeName: [UIColor whiteColor], NSBackgroundColorAttributeName: [UIColor clearColor] }; // 文字列を描画する [text drawInRect:CGRectMake(0, 0, size.width, size.height) withAttributes:attributes]; // 現在のグラフィックスコンテキストの画像を取得する UIImage *image = nil; image = UIGraphicsGetImageFromCurrentImageContext(); // 現在のグラフィックスコンテキストへの編集を終了 // (スタックの先頭から削除する) UIGraphicsEndImageContext(); return image; }
使い方。
NSString *text = @"[ほ] "; UIImage *image = [self imageWithString:text];