2013-02-04 93 views
-5

在我的iPad應用程序中,我希望實現一個功能,例如當用戶單擊應用程序中的按鈕時,當前屏幕的屏幕截圖應存儲在數據庫中。我是ios開發新手,我完全不知道如何實現它。請指導我如何。以編程方式在iPad中抓屏

回答

1

參照this link。在這裏你可以找到如何拍攝屏幕截圖的代碼。

不要將圖像保存到數據庫中,將圖像保存在iPad的文檔目錄中。只需將該圖像的文件名保存在數據庫中,這將幫助您輕鬆獲取圖像。

希望這個信息可以幫助你..

1

試試這個...

- (UIImage*)captureView:(UIView *)view 
{ 
    CGRect rect = [[UIScreen mainScreen] bounds]; 
    UIGraphicsBeginImageContext(rect.size); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [view.layer renderInContext:context]; 
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return img; 
} 

- (void)saveScreenshotToPhotosAlbum:(UIView *)view 
{ 
    appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 
    UIImageWriteToSavedPhotosAlbum([self captureView:self.view], nil, nil,nil); 
} 

只是給任何的UIView你想捕捉到 - (UIImage的*)captureView:(UIView的*)查看方法

0

其他答案中的鏈接確實提供了很好的解決方案。正如P.J建議的那樣,最好將圖像保存在文檔目錄中,並在數據庫中保存文件名是一種好方法。

但是,如果在你不顧一切地保存在數據庫中的圖像在這裏,我已經使用

NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO TABLE_NAME (NAME, IMAGE) VALUES (\"%@\", (?))", name]; 


if(sqlite3_prepare_v2(databaseObj,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK) 
       { 
        NSData* imageData = UIImagePNGRepresentation(image); 
        sqlite3_bind_blob(statement, 2, [imageData bytes], [imageData length], SQLITE_STATIC); 

       if(sqlite3_step(statement) != SQLITE_DONE) 
        NSLog(@"Error: %s", sqlite3_errmsg(databaseObj)); 
       else 
        NSLog(@"Insert into row id = %lld", (sqlite3_last_insert_rowid(playerDB))); 
       sqlite3_finalize(statement); 
      } 
+0

您好,感謝張貼代碼.. – user1531912

+0

嗨,這個問題已經下降了投票樣本請讓我知道它出錯的地方,以便我能糾正它。 – user1531912

+0

@ user1531912:可能是因爲您沒有做任何調查併發布了答案。否則,答案几乎就會在網站上進行一些修改。雖然不確定... – Sagrian

相關問題