iOS 文字转化成图片
?
//文字轉化成圖片
-(UIImage *)imageFromText:(NSArray*)arrContent withFont:(CGFloat)fontSize withTextColor:(UIColor *)textColor withBgImage:(UIImage *)bgImage withBgColor:(UIColor *)bgColor
{
? ? // set the font type and size
?? ?
? ? UIFont *font = [UIFont fontWithName:@"Heiti SC" size:fontSize];
? ? NSMutableArray *arrHeight = [[NSMutableArray alloc] initWithCapacity:arrContent.count];
?? ?
? ? CGFloat fHeight = 0.0f;
? ? for (NSString *sContent in arrContent) {
? ? ? ? CGSize stringSize = [sContent sizeWithFont:font constrainedToSize:CGSizeMake(CONTENT_MAX_WIDTH, 10000) lineBreakMode:NSLineBreakByWordWrapping];
? ? ? ? [arrHeight addObject:[NSNumber numberWithFloat:stringSize.height]];
?? ? ? ?
? ? ? ? fHeight += stringSize.height;
? ? }
?? ?
? ? CGSize newSize = CGSizeMake(CONTENT_MAX_WIDTH+20, fHeight+50);
?? ?
? ? // Create a stretchable image for the top of the background and draw it
? ? UIGraphicsBeginImageContextWithOptions(newSize,NO,0.0);
? ? CGContextRef ctx = UIGraphicsGetCurrentContext();
?? ?
? ? //如果設置了背景圖片
? ? if(bgImage)
? ? {
? ? ? ? UIImage* stretchedTopImage = [bgImage stretchableImageWithLeftCapWidth:0 topCapHeight:0];
? ? ? ? [stretchedTopImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
? ? }else
? ? {
? ? ? ? if(bgColor)
? ? ? ? {
? ? ? ? ? ? //填充背景顏色
? ? ? ? ? ? [bgColor set];
? ? ? ? ? ? UIRectFill(CGRectMake(0, 0, newSize.width, newSize.height));
? ? ? ? }
? ? }
?? ?
? ? CGContextSetCharacterSpacing(ctx, 10);
? ? CGContextSetTextDrawingMode (ctx, kCGTextFillClip);
? ? [textColor set];
?? ?
? ? int nIndex = 0;
? ? CGFloat fPosY = 20.0f;
? ? for (NSString *sContent in arrContent) {
? ? ? ? NSNumber *numHeight = [arrHeight objectAtIndex:nIndex];
? ? ? ? CGRect rect = CGRectMake(10, fPosY, CONTENT_MAX_WIDTH , [numHeight floatValue]);
?? ? ? ?
? ? ? ? [sContent drawInRect:rect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentLeft];
?? ? ? ?
? ? ? ? fPosY += [numHeight floatValue];
? ? ? ? nIndex++;
? ? }
?? ?
? ? // transfer image
? ? UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
? ? UIGraphicsEndImageContext();
?? ?
? ? return image;
?? ?
}
?
轉載于:https://www.cnblogs.com/ios988/p/5630369.html
總結
以上是生活随笔為你收集整理的iOS 文字转化成图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wordpress去掉category怎
- 下一篇: iOS开发-开发总结(七)