在图片上绘制出 文本的效果,可用以下代码:
- ( UIImage *)createShareImage:(NSString *)str
{
UIImage *image = [UIImage imageNamed:@"1.jpg"];
CGSize size=CGSizeMake(image.size.width,image.size.height);// 画布大小
UIGraphicsBeginImageContextWithOptions(size,NO , 0.0 );
[image drawAtPoint :CGPointMake (0,0)];
// 获得一个位图图形上下文
CGContextRef context=UIGraphicsGetCurrentContext ();
CGContextDrawPath (context,kCGPathStroke );
// 绘制文本
[str drawAtPoint :CGPointMake (30 ,image.size.height *0.55) withAttributes :@{ NSFontAttributeName :[UIFont fontWithName :@"Arial-BoldMT" size :40 ],NSForegroundColorAttributeName :[UIColor whiteColor ]} ];
// 绘制的新图形
UIImage *newImage=UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext ();
//返回你的图形
return newImage;
}
效果如下:
有时候需要截屏的效果代码如下 :
//点击屏幕出发事件:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
// 1.开启图形上下文
CGSize imageSize = self.view.bounds.size;
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);
// 2.将某个view的所有内容渲染到图形上下文中
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
// 3.取得图片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
CGImageRef subimageRef = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, 0, 640, 480));
UIImage *subImage = [UIImage imageWithCGImage:subimageRef];
[UIImagePNGRepresentation(subImage) writeToFile:@"/Users/apple/Desktop/view.png" atomically:YES];
// 4.关闭上下文
UIGraphicsEndImageContext();
}