我有一个相机应用程序,当我点击相机按钮时相机打开,用户可以从相机或照片库拍照。
我完成了相机部件,当用户点击按钮时相机打开,他可以拍照。问题是用户从相机拍摄的图片必须保存到SQLite数据库中。我被困在这一部分。有人可以帮我保存从相机中取出的图像吗?
答案 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。
希望它有所帮助.....