如何在iOS上的SQLite数据库中拍照并保存

时间:2011-05-31 10:28:27

标签: iphone objective-c ios sqlite

我有一个相机应用程序,当我点击相机按钮时相机打开,用户可以从相机或照片库拍照。

我完成了相机部件,当用户点击按钮时相机打开,他可以拍照。问题是用户从相机拍摄的图片必须保存到SQLite数据库中。我被困在这一部分。有人可以帮我保存从相机中取出的图像吗?

3 个答案:

答案 0 :(得分:3)

如果您使用的是UIImagePickerController,则可以使用imagePickerController:didFinishPickingMediaWithInfo:委托方法获取图片。您获得的图像是UIImage对象。

UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
NSData *data = UIImageJPEGRepresentation(image, 1.0);

现在NSData有一个方法bytes,返回void*。这将指向一个C类型的数组,它应该与SQLite一起使用。

答案 1 :(得分:2)

您可以在数据库中创建blob类型数据字段,然后将字节数据保存到该列中。但是在数据库中保存图像是一种不好的做法。相反,您可以将图像保存在文档目录中,除非非常有必要将图像保存在数据库中。

答案 2 :(得分:0)

现在,当您打开相机时,您实现了以下方法

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {

[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

在上面的方法中添加以下代码: -

NSData *imageData = UIImageJPEGRepresentation(img, 1);

然后调用将数据保存到数据库的方法。

确保将字段类型作为数据库中的blob。

希望它有所帮助.....