【发布时间】:2011-05-31 10:28:26
【问题描述】:
我有一个相机应用程序,当我点击相机按钮时,相机会打开,用户可以从相机或照片库中拍照。
我已经完成了相机部分,这样当用户点击按钮时,相机就会打开并且他可以拍照。问题是用户从相机拍摄的照片必须保存到 SQLite 数据库中。我被困在这部分。谁能帮我保存从相机拍摄的图像?
【问题讨论】:
标签: iphone objective-c ios sqlite
我有一个相机应用程序,当我点击相机按钮时,相机会打开,用户可以从相机或照片库中拍照。
我已经完成了相机部分,这样当用户点击按钮时,相机就会打开并且他可以拍照。问题是用户从相机拍摄的照片必须保存到 SQLite 数据库中。我被困在这部分。谁能帮我保存从相机拍摄的图像?
【问题讨论】:
标签: iphone objective-c ios sqlite
如果您使用UIImagePickerController,您可以在其imagePickerController:didFinishPickingMediaWithInfo: 委托方法中获取图像。你得到的图像是一个UIImage 对象。
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
现在NSData 有一个方法bytes,它返回void*。这将指向一个 C 类型的数组,它应该可以很好地与 SQLite 配合使用。
【讨论】:
您可以在数据库中创建一个 blob 类型的数据字段,然后将字节数据保存到该列中。但是将图像保存在数据库中是一种不好的做法。相反,您可以将图像保存在文档目录中,除非非常需要将图像保存在数据库中。
【讨论】:
现在当你打开相机时,你实现了下面的方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}
在上述方法中添加以下代码:--
NSData *imageData = UIImageJPEGRepresentation(img, 1);
然后调用将数据保存到数据库的方法。
确保将字段类型作为数据库中的 blob。
希望对你有帮助.....
【讨论】: