添加背景到截图

时间:2014-05-14 09:30:15

标签: ios uiimage

我想在我拍摄的截图中添加背景,但出了点问题。图像的返回仅是没有屏幕截图的背景。这是我的代码,你可以解决它吗?

- (UIImage *)screenshot
{
UIImage *backgroundImage = [UIImage imageNamed:@"iphoneframe.png"];
UIGraphicsBeginImageContext(backgroundImage.size);
[backgroundImage drawInRect:CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height)];

UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIGraphicsEndImageContext();

[screenshot drawInRect:CGRectMake(backgroundImage.size.width - screenshot.size.width, backgroundImage.size.height - screenshot.size.height, screenshot.size.width, screenshot.size.height)];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

return image;
}

背景/框架我想放置屏幕截图:http://oi45.tinypic.com/2qvv2tv.jpg
原型图片,应返回:http://i.stack.imgur.com/hg1nW.png

更新:问题已经通过@ panayot-panayotov和@jrturton的提示解决了 - 想法是删除第二个UIGraphicsBeginImageContext&将UIGraphicsEndImage Context();放在return Image;上方,但现在图片如下:pbs.twimg.com/media/BnlkN9wIAAEG-ue.jpg:large - 我们如何解决这个问题?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在创建两个图像上下文,并在每个图像上下文中绘制不同的图像。不要创建第二个上下文(UIGraphicsBeginImageContext...),并移动结束上下文调用,直到您取出最终图像为止,您应该没问题。

值得注意的是,您应该使用较新的选项'制作图像上下文时的版本 - 这将允许您在视网膜设备上正确绘制。