作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
.m 编码
-(IBAction) getPhoto:(id) sender {
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
} else {
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIAlertView *noCameraAlert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"You don't have a camera for this device" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
//shows above alert if there's no camera
[noCameraAlert show];
}else{
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.allowsEditing = YES;
picker.delegate = self;
}
}
[self presentViewController:picker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
img = [info valueForKey:UIImagePickerControllerEditedImage];
self.imageView.image = img;
imagData = UIImagePNGRepresentation(img);
[picker dismissViewControllerAnimated:YES completion:nil];
}
现在图像已放在 ImageView 中,我如何将图像保存在数据库中
我已经有了数据库来插入数据插入:
NSMutableArray *listItemsarr = [[NSMutableArray alloc] init];
if([listItemsarr count]==0){
NSString *insertQry=@"INSERT INTO selection_tbl (expenses_value,category,date,payment,description) VALUES(?,?,?,?,?)";
sqlite3_stmt *stmt=[DB OpenSQL:[insertQry UTF8String]];
if(stmt !=nil)
{
sqlite3_bind_text(stmt,1, [dataTextfield.text UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,2, [[selectionarray objectAtIndex:0] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,3, [[selectionarray objectAtIndex:1] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,4, [[selectionarray objectAtIndex:2] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,5, [[selectionarray objectAtIndex:3] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
[DB CloseSQL];
以下代码用于更新数据库值更新:
NSInteger proeditid = [primarykeyID integerValue];
NSString *updateQry=@"update selection_tbl set expenses_value=?,category=?,date=?,payment=?,description=? where expenses_id=?";
sqlite3_stmt *stmt=[DB OpenSQL:[updateQry UTF8String]];
if(stmt !=nil)
{
sqlite3_bind_text(stmt,1, [dataTextfield.text UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,2, [[selectionarray objectAtIndex:0] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,3, [[selectionarray objectAtIndex:1] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,4, [[selectionarray objectAtIndex:2] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt,5, [[selectionarray objectAtIndex:3] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(stmt,6, (int)proeditid);
sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
[DB CloseSQL];
最佳答案
有两个问题:
如何获取 NSData
图像的表示?
简单的方法是使用 UIImagePNGRepresentation
的 UIImage
.
更好的方法是使用 getBytes
检索原始 Assets 。参见 https://stackoverflow.com/a/25251943/1271826 .
如何保存 NSData
SQLite 数据库中的表示?
保存这个NSData
在您的数据库中,然后使用 sqlite3_bind_blob
.该过程与 sqlite3_bind_xxx
非常相似您之前与我们分享的功能。使用 bytes
NSData
的方法|访问指向缓冲区的 C 样式指针,并将其传递给 sqlite3_bind_blob
.
请注意,众所周知,在 SQLite 数据库中保存全尺寸图像效率低下。 SQLite 不能很好地处理大的 blob。通常人们更愿意保存 NSData
到设备永久存储上的文档文件夹中的一个文件中,然后只保存 path
数据库中的那个文件。
关于ios - 图像是由 UIImagePickerControllerSourceTypeCamera 拍摄的如何将其保存在 ios 的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28935879/
我是一名优秀的程序员,十分优秀!