直接贴代码吧
UIImage+Text.h
#import <UIKit/UIKit.h> @interface UIImage (Text) - (UIImage*)addText:(NSString*)text1 XPos:(int)xpos YPos:(int)ypos fontName:(NSString*)fontName fontSize:(CGFloat)fontSize fontColor:(UIColor*)fontColor; @end
UIImage+Text.m
#import "UIImage+Text.h" @implementation UIImage (Text) - (UIImage*)addText:(NSString*)text1 XPos:(int)xpos YPos:(int)ypos fontName:(NSString*)fontName fontSize:(CGFloat)fontSize fontColor:(UIColor*)fontColor { int w = self.size.width; int h = self.size.height; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst); CGContextDrawImage(context, CGRectMake(0, 0, w, h), self.CGImage); CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1); char *txt = (char*)[text1 cStringUsingEncoding:NSUTF8StringEncoding]; char *font = (char*)[fontName cStringUsingEncoding:NSUTF8StringEncoding]; CGContextSelectFont(context, font, fontSize, kCGEncodingMacRoman); CGContextSetTextDrawingMode(context, kCGTextFill); CGContextSetFillColorWithColor(context, fontColor.CGColor); CGContextShowTextAtPoint(context, xpos, ypos, txt, strlen(txt)); CGImageRef imageRef = CGBitmapContextCreateImage(context); CGContextSetAllowsAntialiasing(context, YES); UIImage *result = [UIImage imageWithCGImage:imageRef]; CGImageRelease(imageRef); CGContextRelease(context); CGColorSpaceRelease(colorSpace); return result; } @end
调用举例
UIImage *img = [UIImage imageNamed:@"image.jpg"]; image.image = [img addText:text.text XPos:80 YPos:300 fontName:@"Georgia-Bold" fontSize:46.0 fontColor:[UIColor whiteColor]];