我需要做的是,拍照或从照片库中选择一种形式,然后将其保存在应用程序中,以便在应用程序内的任何其他地方都看不到它。例如,它就像“我的秘密文件夹”,其中图像只能在应用程序中看到。我没有制作秘密文件夹应用程序....所以不要担心... =)
对不起,我没有太多代码要展示,但我不知道该怎么做。
我正在查看富文本文件,并想知道这是否可行,如果它甚至可以存储图像,或者我必须采用不同的方式。
谢谢, Denali Creative LLC
P.S。
我要做的是在应用程序中保存多于一个图像。因此,我需要能够将图像或图像的保存名称命名为文件名。
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以将图像保存在应用程序的沙盒中
Documents
文件夹在同步期间是备份,Library/Caches
文件夹不是。这使您可以选择保密级别。
获得图像(UIImagePickerController
以及< UIImagePickerControllerDelegate
>协议后面的类)后,将其转换为NSData并将其存档到所需的文件夹。
像
这样的东西NSData * imageData = UIImagePNGRepresentation (image);
NSData * imageData = UIImageJPEGRepresentation (image);
取消归档NSData时,可以使用
创建映像[UIImage imageWithData:data];
答案 2 :(得分:0)
所以你不希望其他应用程序识别你的图像。我不确定,但这可能会对你有所帮助。而不是标准的png或jpg扩展,只需替换像.abc这样其他应用程序无法识别的虚拟扩展。可能还有其他方法,但我正在使用这种方法。
答案 3 :(得分:0)
从照片选择器委托回调中的PhotoPicker信息字典中提取图像。
在/ Documents文件夹下的某个位置设置一个子目录,然后在那里写下图像。
NSData *pngData = UIImagePNGRepresentation(_myUIImage);
BOOL successFlag = [pngData writeToFile:documentDirectorySubFolder options:0x0 error:&error];
答案 4 :(得分:0)
使用UIImagePickerController类并实现它委托
图像选择器视图委托的委托方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info ;
当您从照片库中选择照片或从相机拍照时,会调用此方法。最好将图像保存在核心数据库中,然后只能在您的应用中显示。
答案 5 :(得分:0)
我认为这个想法可能会对你有所帮助。您可以使用SQLIte创建一个应用程序。您可以在应用中保存图像。但问题是您在应用中保存的图像并保持对其他人的安全,您必须从图库中手动删除
答案 6 :(得分:0)
我建议您将图片存储在Documents Directory
中并从那里阅读,因为它是存储应用内容的最合适位置。
将图像保存到文档目录
-(void)saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
if ([[extension lowercaseString] isEqualToString:@"png"]) {
[UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
} else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
[UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
} else {
NSLog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
}
}
从文档目录加载图片
-(UIImage *)loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]];
return result;
}
如何对强>
//Definitions
NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
//Save Image to Directory
[self saveImage:imageFromURL withFileName:@"My Image" ofType:@"png" inDirectory:documentsDirectoryPath];
//Load Image From Directory
UIImage * imageFromWeb = [self loadImage:@"My Image" ofType:@"png" inDirectory:documentsDirectoryPath];