链接我的应用程序拍摄的照片

时间:2013-09-16 16:22:55

标签: iphone ios

在我的应用上,我有一个调用相机的按钮。我想,在用户拍照后,将此图像保存到用户的库中,并将此图像与我的应用程序(如ID)相关联。 有一种方法可以在不保存我的数据库图像的情况下执行此操作吗?

2 个答案:

答案 0 :(得分:3)

是的,你绝对可以做到!

我最近在Github上传了一个名为“Chanda”的项目,在那里我展示了这种用法。请访问以下网址并查看完整代码:

https://github.com/azamsharp/Chanda

以下是代码片段,但我强烈建议您下载项目并查看其中的实际操作。

+(NSString *) getUniqueIdentifier
{
    CFUUIDRef uuid;
    CFStringRef uuidStr;

    uuid = CFUUIDCreate(NULL);
    uuidStr = CFUUIDCreateString(NULL, uuid);

    return (__bridge NSString *)(uuidStr);
}

// user generated images are stored in the documents directory
+(UIImage *) loadImageFromDocumentsDirectory:(NSString *)imageUrl
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",imageUrl]];

    UIImage *image = [UIImage imageWithContentsOfFile:savedImagePath];

    return image;
}

// save user's image into the documents directory
+(NSString *) saveImageIntoDocumentsDirectoryAndReturnPath:(UIImage *)imageToSave
{
    imageToSave = [imageToSave imageByScalingProportionallyToSize:CGSizeMake(320, 480)];

    NSString *uniqueImageName = [self getUniqueIdentifier];

    uniqueImageName = [uniqueImageName stringByAppendingPathExtension:@"png"];

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

    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",uniqueImageName]];
    NSData *imageData = UIImagePNGRepresentation(imageToSave);

    [imageData writeToFile:savedImagePath atomically:YES];

    return uniqueImageName;
}

答案 1 :(得分:0)

我按照本教程保存了图像的数据库路径:http://blog.teliaz.com/2010/capture-saveloadremove-image-in-documents-directory 并将图像保存到照片库:

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);