2014-05-14 174 views
0

我想添加一個背景給我的截圖,但出現了一些問題。圖像的返回只是沒有屏幕截圖的背景。這是我的代碼,你能修好嗎?將背景添加到屏幕截圖

- (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

把'UIGraphicsEndImageContext();'上面的'返回圖像;' – Pancho

+0

可能重複的[自動添加圖像幀採取屏幕截圖](http://stackoverflow.com/questions/23630270/automatically-add-image-frame-屏幕截圖) – Larme

+0

你爲什麼要創建另一個問題?你可以編輯你以前的問題指出新的問題,因爲它只是從你以前的問題的延續:http://stackoverflow.com/questions/23630270/automatically-add-image-frame-to-taken-screenshot – Larme

回答

0

您正在創建兩個圖像上下文,並在每個圖像上繪製不同的圖像。不要創建第二個上下文(UIGraphicsBeginImageContext...),並移動結束上下文調用,直到取出最終圖像,並且應該沒問題。

同樣值得注意的是,在製作圖像上下文時,您應該使用更新的「with options」版本 - 這將允許您在視網膜設備上正確繪製。

+0

任何想法如何解決這個bug?https://pbs.twimg.com/media/BnlrfA-CEAA3jvE.jpg:large – TechRobin

+0

你需要翻譯在繪製屏幕截圖之前繪製上下文,因爲它是從0,0開始的。另一個問題的答案是這樣的。 – jrturton