冬は寒い!
見習いプログラマーの naopon です!
前回の画像からテキストの輪郭を切り抜く①の使い方
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  | 
						//使い方の例 {     //元画像     UIImage *img = [UIImage imageNamed:@"sample"];     //元画像に収まるテキストのサイズ     CGSize txtSize = CGSizeZero;     txtSize.width = img.size.width/[[UIScreen mainScreen] scale] - 10.f;     txtSize.height = img.size.height/[[UIScreen mainScreen] scale] - 10.f;     //切り抜くテキスト     NSString *punchingText = @"あああ\nあいうえお";     //フォントサイズ最適化     UIFont *font = [self adjustWithFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:100]                                 minSize:10                       constrainedToSize:txtSize                                 forText:punchingText];     //切り抜き画像生成     UIImage *punchingImg = [img imageByPunchingText:punchingText                                            fontSize:font.pointSize                                            fontName:font.fontName                                           fontColor:[UIColor clearColor]                                         lineSpacing:10.0f                                       textAlignment:NSTextAlignmentCenter]; }  | 
					
仮に下記みたいな「指定サイズ内に収まるフォントを返す」ような関数があったとして。
上記のコードのような感じで使用します。
おぉぉ完成!!
画像を用意できなくて、ブログ内容が大変見にくくなっておりますが。。。
画像からテキストの輪郭パスを切り抜けたから
良しとしよう ( ^ o^)!!
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45  | 
						/**  *  指定サイズ内に収まるフォント  *  @param baseFont ベースフォント  *  @param minSize  最小フォントサイズ  *  @param toSize   納めたいビューサイズ  *  @param text     表示させたいテキスト  *  @return サイズに収まるフォント  */ - (UIFont *)adjustWithFont:(UIFont *)baseFont minSize:(CGFloat)minSize constrainedToSize:(CGSize)toSize forText:(NSString *)text {     UIFont *font = baseFont;     @autoreleasepool     {         CGFloat maxSize = font.pointSize;         CGSize constraintSize = CGSizeMake(toSize.width, MAXFLOAT);         NSRange range = NSMakeRange(minSize, maxSize);         int fontSize = 0;         for (NSInteger i = maxSize; i > minSize; i--)         {             @autoreleasepool             {                 fontSize = ceil(((float)range.length + (float)range.location) / 2.0);                 font = [font fontWithSize:fontSize];                 NSDictionary *attributes = @{ NSFontAttributeName : font };                 NSAttributedString *string = [[NSAttributedString alloc] initWithString:([NSObject isNULL:text])?@"":text attributes:attributes];                 CGSize size = [string boundingRectWithSize:constraintSize options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;                 if (size.height <= toSize.height)                     range.location = fontSize;                 else                     range.length = fontSize - 1;                 if (range.length == range.location)                 {                     font = [font fontWithSize:range.location];                     break;                 }             }         }     }     return font; }  |