Как сделать снимок и сохранить в базе данных SQLite на iOS - PullRequest
1 голос
/ 31 мая 2011

У меня есть приложение камеры, в котором, когда я нажимаю на кнопку камеры, камера открывается, и пользователь может делать снимки с камеры или из фото-библиотеки.

Я сделал часть камеры так, что, когда пользователь щелкаетНа кнопке открывается камера, и он может сделать снимок.Проблема в том, что изображение, снятое пользователем с камеры, должно быть сохранено в базе данных SQLite.Я застрял в этой части.Кто-нибудь может мне помочь, как сохранить изображение, снятое с камеры?

Ответы [ 3 ]

3 голосов
/ 31 мая 2011

Если вы используете UIImagePickerController, вы можете получить изображение в методе делегата imagePickerController:didFinishPickingMediaWithInfo:. Полученное изображение является UIImage объектом.

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

Теперь NSData имеет метод bytes, который возвращает void*. Это будет указывать на массив типа C, который должен хорошо работать с SQLite.

2 голосов
/ 31 мая 2011

Вы можете создать поле данных типа BLOB-объектов в своей базе данных, а затем сохранить байтовые данные в этом столбце. Но это плохая практика для сохранения изображений в базе данных. Вместо этого вы можете сохранять изображения в каталоге документов, если только в этом нет необходимости сохранять изображения в базе данных.

0 голосов
/ 31 мая 2011

Теперь, когда вы открываете камеру, вы реализуете следующий метод

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

[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

в приведенном выше методе добавьте следующий код: -

NSData *imageData = UIImageJPEGRepresentation(img, 1);

затем вызовите метод сохранения данных в базу данных.

Убедитесь, что вы выбрали тип поля как blob в базе данных.

Надеюсь, это поможет .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...