2012-03-17 15 views
1

我目前使用此代碼來捕捉屏幕:編程需要iOS上的截圖從任何地方

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; 

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) 
    UIGraphicsBeginImageContextWithOptions(keyWindow.bounds.size, NO, [UIScreen mainScreen].scale); 
else 
    UIGraphicsBeginImageContext(keyWindow.bounds.size); 

CGContextRef context = UIGraphicsGetCurrentContext(); 
[keyWindow.layer renderInContext:context]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

它工作正常,從跳板,但在打開的應用程序,也沒有創建的映像。關鍵窗口和[UIScreen mainScreen]應該在任何地方工作,或者不應該?

我必須得到更具體的,並以某種方式使用當前應用程序使用的特定窗口?

+0

你試圖讓其他應用程序的截圖? – sosborn 2012-03-17 02:35:14

+0

我正在做一個Activator監聽器,當被調用時,代碼運行得到一個截圖。從打開的應用程序調用時,不會生成圖像。 – 2012-03-17 03:07:42

+0

您的代碼獲取您的應用的屏幕。如果你的應用程序在後臺,它不會在屏幕上顯示任何東西,所以沒有圖像。無論如何,這是我最好的猜測。 – sosborn 2012-03-17 03:30:46

回答

0

這可能是一個愚蠢的答案,但是您確定在您嘗試捕獲關鍵窗口時加載了視圖嗎?

哎呀,這有幫助。

+0

那不是一個答案,這是一個評論。 – JustSid 2012-05-01 00:03:49

0

這是隻有越獄的iOS:

// fwd declare a private function 
UIKIT_EXTERN CGImageRef UIGetScreenImage(); 

// grab screen image from framebuffer. 
// this grabs everything: status bar included 
CGImageRef ref = UIGetScreenImage(); 

// create a UIImage out of CoreGraphics object 
// at this point img contains your screenshot 
UIImage* img = [UIImage imageWithCGImage:ref]; 

// release temp object 
CGImageRelease(ref); 
+0

你需要添加一些描述,比如說如何工作這段代碼....對你和其他人都有好處......: - )....乾杯 – 2012-05-06 07:08:37

+0

很明顯,你需要從一個Mobile Substrate插件(tweak) – 2012-06-02 19:40:42

相關問題