2012-02-13 19 views
-1

SQLite 3.0とiOS5を使用しています。イメージをSQLiteデータベースに保存し、ios5で取得する

今、データベースのvrchar2データ型に画像を保存し、iPhoneのビューで取得したいと考えています。

今私はImageViewの中でそれを取得したい私は、BLOBデータ型に保存された画像を使用しているとのNSDataを通じて、私はit..Nutを取得した

..

どのように私はそれを使用することができますか?

+0

私はちょっと混乱しています。助けてください! –

+1

さて、画像やDBについては、一部のサークルで意見の相違があります。あるキャンプでは、「DBにイメージを保存する」と、もう1つのキャンプに「イメージをファイルシステムに保存し、イメージへのパスをDBに保存する」ことがあります。それぞれの方法とのトレードオフがあります。 –

+0

このリンクはあなたを助けます。 http://stackoverflow.com/questions/10811437/store-images-in-to-sqlite-database –

答えて

0

sqliteファイルから情報を取得できるようにDAOを作成する必要があります。次に、そのファイルを呼び出して必要な情報をすべて取得します。

const char * myData = sqlite3_column_blob(statement, 1(this number is different according to your database)); 
int myDataSize = sqlite3_column_bytes(statement, 1); 
NSData *data = [NSData dataWithBytes:myData length:myDataSize]; 

次にデータベースに画像全体を使用して、任意の特定の理由がある

myPhoto.thePhoto = [[UIImage alloc] initWithData:data]; 
+0

ありがとう...それは動作します –

+0

あなたは歓迎です – alecnash

1

あなたはまず使ったNSDataからUIImageを作成する必要があります。

UIImage *img = [[UIImage alloc] initWithData:theData]; 

は、その後、あなたのイメージ図では、この画像を使用することができます。

UIImageView *imgView = [[UIImageView alloc] initWithImage: img]; 

は、しかし、適切なメモリ管理を行うことを忘れないでください。 !

+0

しかし、データベースからperticluarの行からイメージを取得するにはどうすればよいですか?データの意味は? –

+0

? –

+0

そのためには、取り込んでいるイメージにいくつかのロジックが必要です。正確に何を達成したいのですか? theDataは、検索したあなたの質問にあなたが言及したNSDATAを示します。 –

1

初期化: は、このようなブロブを取得しますか?

これは、NSDataをデータベースに格納することがデータベースに多くのデータを格納していると思うからです。これは、実行時間が長いほどデータベースが非常に重くなる可能性があります。

画像をドキュメントディレクトリに保存するか、ライブラリディレクトリに保存して、画像の完全な画像パスをデータベースに保存する方がよいでしょう。あなたがここに

UIImageView *imgView = [UIImageView setImage:[[UIImage alloc] initWithContentsOfFile:filePath]]; 

を呼び出す必要がImageViewの中でそれを取り出すその後

単にあなたが合格する必要があるすべては、あなたがデータベースからフェッチしている「filePathに」です。

希望すると、これが役立ちます。

+0

ええと...より良いオプション...私はしようとします..ありがとう –

関連する問題