生活随笔
收集整理的這篇文章主要介紹了
IOS下将文字转成图片方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于在應用中有分享微博功能,文字較長時需要截斷,導致不完整,所以必須自動轉成圖片,發長微博來解決問題。先將方法分享如下,以下方法經過實際應用,沒有問題。?? ?? ?? ?? #define?CONTENT_MAX_WIDTH???300.0f?? ?? +(UIImage?*)imageFromText:(NSArray*)?arrContent?withFont:?(CGFloat)fontSize?? {?? ?????? ????UIFont?*font?=?[UIFont?systemFontOfSize: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:UILineBreakModeWordWrap];?? ????????[arrHeight?addObject:[NSNumber?numberWithFloat:stringSize.height]];?? ?????????? ????????fHeight?+=?stringSize.height;?? ????}?? ?????? ?????? ????CGSize?newSize?=?CGSizeMake(CONTENT_MAX_WIDTH+20,?fHeight+50);?? ?????? ????UIGraphicsBeginImageContextWithOptions(newSize,NO,0.0);?? ????CGContextRef?ctx?=?UIGraphicsGetCurrentContext();?? ????CGContextSetCharacterSpacing(ctx,?10);?? ????CGContextSetTextDrawingMode?(ctx,?kCGTextFillStroke);?? ????CGContextSetRGBFillColor?(ctx,?0.1,?0.2,?0.3,?1);??? ????CGContextSetRGBStrokeColor?(ctx,?0,?0,?0,?1);?? ?????? ????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:UILineBreakModeWordWrap?alignment:UITextAlignmentLeft];?? ????????? ????????fPosY?+=?[numHeight?floatValue];?? ????????nIndex++;?? ????}?? ?????? ????UIImage?*image?=?UIGraphicsGetImageFromCurrentImageContext();?? ????UIGraphicsEndImageContext();?? ?????? ????[arrHeight?release];?? ?????? ?????? ?????? ????return?image;?? ??????
}?
ps:參數為什么要用NSArray?由于大段文字里面有各種語言,有些語言需要從右向左顯示,所以在程序處理時可以進行判斷,然后進行處理。為簡化程序,本人將該部分代碼刪除掉了。
總結
以上是生活随笔為你收集整理的IOS下将文字转成图片方法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。