我想在我拍摄的截图中添加背景,但出了点问题。图像的返回仅是没有屏幕截图的背景。这是我的代码,你可以解决它吗?
- (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 - 我们如何解决这个问题?有什么想法吗?
答案 0 :(得分:0)
您正在创建两个图像上下文,并在每个图像上下文中绘制不同的图像。不要创建第二个上下文(UIGraphicsBeginImageContext...
),并移动结束上下文调用,直到您取出最终图像为止,您应该没问题。
值得注意的是,您应该使用较新的选项'制作图像上下文时的版本 - 这将允许您在视网膜设备上正确绘制。