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

前些时候在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];
}

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值