Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I use the NSString draw functionality to create a UIImage from text

I would like to draw the content of a NSString variable in a UIImage, but I have absolutely no idea how to do this. I need to write a method that would receive a NSString as parameter and return a UIImage with the text drawn into it.

like image 289
Jab Avatar asked May 04 '10 13:05

Jab


1 Answers

You can try this: (updated for iOS 4)

-(UIImage *)imageFromText:(NSString *)text {     // set the font type and size     UIFont *font = [UIFont systemFontOfSize:20.0];       CGSize size  = [text sizeWithFont:font];      // check if UIGraphicsBeginImageContextWithOptions is available (iOS is 4.0+)     if (UIGraphicsBeginImageContextWithOptions != NULL)         UIGraphicsBeginImageContextWithOptions(size,NO,0.0);     else         // iOS is < 4.0          UIGraphicsBeginImageContext(size);      // optional: add a shadow, to avoid clipping the shadow you should make the context size bigger      //     // CGContextRef ctx = UIGraphicsGetCurrentContext();     // CGContextSetShadowWithColor(ctx, CGSizeMake(1.0, 1.0), 5.0, [[UIColor grayColor] CGColor]);      // draw in context, you can use also drawInRect:withFont:     [text drawAtPoint:CGPointMake(0.0, 0.0) withFont:font];      // transfer image     UIImage *image = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext();          return image; } 

To call it:

UIImage *image = [self imageFromText:@"This is a text"]; 
like image 83
rpmx Avatar answered Sep 21 '22 07:09

rpmx