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.
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"];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With