如何在设备上正确保存图像;只是稍后在我的应用程序中显示它们

时间:2015-02-04 16:31:10

标签: ios objective-c uiimage storage

我的应用程序的用户每天大约拍摄8张照片。这些图片保存在设备上,只能在我的应用程序中查看。即不在"照片"。这些照片应该像一个类似的东西。但我还不知道如何实现这一点。

现在我的问题,在您查看下面的代码之后。 这是否可以接受这种任务?基本上我将照片保存到NSDocumentDirectory。后来我喜欢把它们放在一个UIImages数组中,只需要以某种方式显示它们。

当前我正在保存这样的照片。用户将访问这些图片:

        **UIImage *combined == //an UIImage

        NSData *pngData = UIImagePNGRepresentation(combined);
        NSString *filePath = [[self buildDocumentsPath] stringByAppendingPathComponent:[self buildPictureName]]; //Add the file name
        [pngData writeToFile:filePath atomically:YES]; //Write the file
        NSLog(@"CameraController: Image saved on disk: %@", [self buildPictureName]);

Helpfunction1:

- (NSString *)buildPictureName{
    int currentTime = mTimerSpan*i;
    NSString *imageName = @"bg_session=";
    NSString *sessionNumberAsString =  [NSString stringWithFormat: @"%ld", (long)mCurrentSessionNumber];
    imageName = [imageName stringByAppendingString:sessionNumberAsString];
    return [imageName stringByAppendingString:@".png"];
}

Helpfunction2:

- (NSString *)buildDocumentsPath{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    return documentsPath; 
}

从设备中取回图像,我喜欢建立一个功能,将所有图像转换为UIImages数组????:

NSString *filePath = [[self buildDocumentsPath] stringByAppendingPathComponent:[self buildPictureName]];
    NSData *pngData = [NSData dataWithContentsOfFile:filePath];
    UIImage *image = [UIImage imageWithData:pngData];

0 个答案:

没有答案