2011-01-14 7 views
1

私のアプリケーションでフォトライブラリに保存された写真を使用しています。 フォトライブラリに保存されている写真のパスを取得するにはどうすればよいですか?フォトライブラリのパスを取得する方法は?

私はそれをNSDataに変換し、そのデータをアプリケーションのサンドボックス(1つのファイル)に保存しました。sqliteを使用して、データベースを作成し、ファイルパスをデータベースに保存しました。 イメージが必要なときはいつでも、データベースに保存されたファイルパスからNSDataを検索します。

NSMutableData *data=[[NSMutableData alloc]init];  
data =UIImagePNGRepresentation([UIImageimageNamed:@"image.png"]);   
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);  
NSString *documentsDirectory = [paths objectAtIndex:0];  
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"first.txt"]; [data writeToFile:filePath atomically:YES];  
NSString *m=[[@"'"stringByAppendingFormat:filePath]stringByAppendingFormat:@"'"]; 
NSString *query=[[@"INSERT INTO newtable (image) VALUES (" stringByAppendingFormat:m]stringByAppendingFormat:@")"]; 
NSLog(@"query....%@",query);   
[obj configureDatabase:@"Editerdb.rdb"];//function to configure database 
[obj insertInTable:query];// function to insert into db 

このコードは機能しています。 これを行う簡単な方法はありますか?

答えて

0

まず最初の行では、メモリリークが発生します。 UIImagePNGRepresentationのドキュメントを参照してください。最初のコード行を削除してください。 NSMutableDataの代わりにNSDataを使用してください。イメージの内容は変更されません。

、あなたがイメージしたいときにだけデータベースからNSDataオブジェクトをretriveとimageWithData:を使用してUIImageNSDataを変換UIImagePNGRepresentation上のドキュメントをこのリファラのために再度、データベース内の画像のパスが、画像そのものを保存されていないすべての第二

+0

どうすればNSDataをデータベースに保存できますか?(意味は...(varchar、integer ????)) – user572555

+0

その部分は申し訳ありませんが、私は自分自身でsqlliteを使用していません。画像を保存するにはtxtファイルを作成することができます。 Googleのテキストファイルを作成する方法については、 – Robin

+0

このリンクに従ってくださいhttp://howtomakeiphoneapps.com/2009/06/reading-and-writing-text-files-in-iphone-os-3-0/ – Robin

関連する問題