如何在iPhone中从UIGraphicsGetImageFromCurrentImageContext()捕获的系统中保存图像?

时间:2014-03-24 07:44:17

标签: ios objective-c uiimage local-storage

您好我想捕获当前UIView作为图像并存储在我的本地硬盘中,我该如何实现:

示例:

UIGraphicsBeginImageContext(self.superview.frame.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();

我希望以任何png,jpeg格式将UIImage存储在我的本地驱动器中。

我怎么能这样做呢。请帮助我。提前谢谢。

3 个答案:

答案 0 :(得分:1)

将图像存储在应用程序的文档文件夹中

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);

NSString *dir = [searchPaths lastObject];

NSString *imagePath = [dir stringByAppendingPathComponent:@"/image.png"];

NSData *dataImage=UIImageJPEGRepresentation(image, 0);

[dataImage writeToFile:imagePath atomically:YES];

答案 1 :(得分:0)

以下代码可以帮助您实现。

UIGraphicsBeginImageContext(self.superview.frame.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"New Folder"];
// New Folder is your folder name
NSError *error = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
    [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];

NSString *fileName = [stringPath stringByAppendingFormat:@"/image.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
[data writeToFile:fileName atomically:YES];

答案 2 :(得分:0)

新的方法(方法)可从Apple获得:

- (UIImage *)snapshot:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0);
    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSString  *imagePath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/capturedImage.jpg"]];
    [UIImageJPEGRepresentation(image, 0.95) writeToFile:imagePath atomically:YES];

    return image;
}