2012-03-05 2 views
-5

내 응용 프로그램에서는 사용자가 템플릿을 추가 할 수 있습니다. 이 템플릿에서는 이미지 수를 & 개 추가합니다. 그는 글꼴 이름, 글꼴 색, 글꼴 크기 &과 같은 textviews 속성을 더 많이 변경할 수 있습니다. 이미지 조작은 이미지를 임의의 각도로 회전하고 런타임에 크기를 늘리거나 줄이는 것과 같습니다. 이 작업을 마친 후 사용자는 그가 원하는 나중에이 템플릿 &을 저장합니다. 그래서 최근의 목록에서 사용자가 수행하는 모든 작업을 &보기로 저장하고 싶습니다. 이렇게하는 방법?데이터베이스에 이미지 저장

답변

1
sqlite3 *database; 
    [email protected]"dataTable.sqlite"; 
    NSArray *documentpath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentdir=[documentpath objectAtIndex:0]; 
    dbPath=[documentdir stringByAppendingPathComponent:dbName]; 
    sqlite3_stmt *compiledStmt; 
    if(sqlite3_open([dbPath UTF8String], &database)==SQLITE_OK){ 
     NSLog(@"Name:%@,Company:%@,URL:%@",model.personName,model.companyName,model.imgurl); 
     const char *insertSQL="insert into Persons(PersonName,CompanyName,ImgUrl,PersonImage)values(?,?,?,?)"; 
    if(sqlite3_prepare_v2(database,insertSQL, -1, &compiledStmt, NULL)==SQLITE_OK){ 
     sqlite3_bind_text(compiledStmt,1,[model.personName UTF8String],-1,SQLITE_TRANSIENT); 
     sqlite3_bind_text(compiledStmt,2,[model.companyName UTF8String],-1,SQLITE_TRANSIENT); 
     sqlite3_bind_text(compiledStmt,3,[model.imgurl UTF8String],-1,SQLITE_TRANSIENT); 
     NSData *imageData=UIImagePNGRepresentation(imageView.image); 
     sqlite3_bind_blob(compiledStmt, 4, [imageData bytes], [imageData length], NULL); 
     NSLog(@"Prepare"); 
     sqlite3_step(compiledStmt); 
    } 
sqlite3_finalize(compiledStmt); 
0

나는 당신의 DB에 디스크에서 이미지를 검색 할 키를 저장하는 것이 좋습니다.
그런 다음 NSArchiverNSUnarchiver을 사용하여 디스크에서 이미지를 가져옵니다.

UIImage *img = [NSKeyedUnarchiver unarchiveObjectWithFile:db.ImgKey]; 

이미지를 DB로 저장하는 것은 무거 우며 디스크는 무거 우며 무겁습니다.

희망이 도움이됩니다.

관련 문제