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