iPhone开发之在图片上显示文字(Add text to UIImage)

来源:互联网 发布:sql 存储过程 返回值 编辑:程序博客网 时间:2024/04/29 22:36

前些时候在iPhone上做分页需要用到的,分页链接是一张图片,需要在图片上显示页码。在网上找到的一段代码,将文字写到图片上面,还不错,核心代码如下:

-(UIImage *)addText:(UIImage *)img text:(NSString *)someText{int w = img.size.width;int h = img.size.height;CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);char* text= (char *)[someText cStringUsingEncoding:NSASCIIStringEncoding];CGContextSelectFont(context, "Arial",20, kCGEncodingMacRoman);CGContextSetTextDrawingMode(context, kCGTextFill);CGContextSetRGBFillColor(context, 0, 0, 0, 1);CGContextShowTextAtPoint(context,10,10,text, strlen(text));CGImageRef imgCombined = CGBitmapContextCreateImage(context);CGContextRelease(context);CGColorSpaceRelease(colorSpace);UIImage *retImage = [UIImage imageWithCGImage:imgCombined];CGImageRelease(imgCombined);return retImage;}- (void)viewDidLoad {    UIImage *img = [UIImage imageNamed:@"logo.png"];    UIImage *image = [self addText:img text:@"Hello World!"];    [self.imgView setImage:image];    [super viewDidLoad];}

效果: