CGImageRef screen = UIGetScreenImage();
UIImage* image = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);
// You could, e.g., save the captured image to photo album
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
UIAlertView *alert;
// Unable to save the image
if (error)
alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Unable to save image to Photo Album."
delegate:self cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
else // All is well
alert = [[UIAlertView alloc] initWithTitle:@"Success"
message:@"Image saved to Photo Album."
delegate:self cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
[alert release];
}
即时通讯使用此coading并且它不在模拟器上工作,但它可以在设备上工作并将图像保存在照片中。有没有办法为模拟器工作?或者有什么方法可以将捕获的图像存储到文档或资源文件夹中?
提前感谢。
答案 0 :(得分:2)
首先,据我所知,模拟器上不支持UIGetScreenImage()。
其次,如果您打算发布此应用程序,请停止使用UIGetScreenImage(),因为Apple再次禁止它,如您所见:https://devforums.apple.com/message/149553#149553。
第三,如果您使用它来从相机捕获数据,则必须使用新的AVFoundation(是的,我知道在iOS3上没有必要的方法)。
第四,如果您需要获取屏幕上UIKit元素的信息:http://developer.apple.com/iphone/library/qa/qa2010/qa1703.html