0

我正在尝试更多地了解照片捕捉在 iOS 上的工作原理。我想确保如果应用程序用于拍照,图像仅由应用程序处理,而不是存储在相机胶卷、临时文件等其他地方。理想情况下,拍摄照片然后应用程序可以实现加密等保证照片的保密存储(敏感文档“扫描”为场景)。

在这种情况下有哪些安全注意事项,用户将被训练不使用系统相机应用程序,而只能通过应用程序使用“扫描”功能。使用公共 API,任何临时文件或自动图像是否会存储在我的控制之外,我该如何处理?这在文档中没有明确说明,如果不完全理解,恐怕可能存在安全/隐私泄漏。

我看到了如何将图像存储在SQLite db中,但是还会留下任何其他文件系统工件吗?

4

2 回答 2

0

If they are photos, you can have NSData for those photos as a final result. Then you can save the data of the photo in a directory inside your application.

Best place to store that kind of data/files in Application Support Directory.

NSString *appSupportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject];
NSString *photoPath = [appSupportDir stringByAppendingPathComponent:@"photo1.png"];

UIImage *image; //image you got from the camera inside your app

NSData *photoData = UIImagePNGRepresentation(image);
[photoData writeToFile:photoPath atomically:YES];
于 2013-05-10T02:37:49.933 回答
0

它没有记录。除了 Apple 的开发人员之外,没有人确切知道UIImagePickerController在文件系统某处的某个临时文件中拍摄的照片是否带有结果。

暂时忽略一些临时文件的可能性,照片根本不存储在照片库或相机胶卷中。由您的应用程序对发送到UIImagePickerController委托方法的图像执行您的操作。

如果临时文件存储在某处,则可以访问它的唯一方法是使用越狱设备。如果您真的需要 100% 确定在任何时间段内都不存在临时文件,那么您将需要一个越狱设备,并且您需要在您的应用程序使用图像选择器时扫描文件系统。

于 2013-05-10T03:03:23.017 回答