2010-12-16 10 views
3

を使用して画像を取得することは、私は私の問題に関連して、いくつかの有用な記事を見つけました、ではなく、正確に、私は私の問題保存して実際にはQtの

詳細を尽くす私はブロブとして整数およびPIXとして牽引列IDを持つテーブルを持っています

私はその後、私はまた、私は

を保存]をクリックしたときに、データベースのテーブルに保存する必要があり、オープンラベルと2つのボタンを持つフォームを持っていると私はラベルに絵を開こう

保存しますナビゲーションを追加した場合、画像を再度検索してラベル付けすることを検討していますボタンを次と前のボタンとして使用します。

お願いします。

答えて

2

は、ここでデータベースにQImageのを保存するための短い例です:

// Converting image to byte array: 
QByteArray bytes; 
{ 
    QBuffer buffer (&bytes); 
    buffer.open (QBuffer::WriteOnly); 
    image.save (&buffer, "PNG"); 
} 

// Writing data into the database: 
QString id_string = id == -1 ? "NULL" : QString::number (id); 
QSqlQuery query ("REPLACE INTO images " 
       "(id, image) VALUES (:id, :image)"); 
query.bindValue (":id", id_string); 
query.bindValue (":image", QString (bytes.toBase64())); 
if (!query.exec()) throw some_exception; 

をだから、基本的にはバイト配列に画像を変換して、ちょうどそれをデータベースに保存するために、SQLクエリを使用する必要があります。私が話しているように私のプログラムでこの問題を解決しようとしているので、上記のコードは不完全かもしれません。お役に立てれば。

+0

IMO画像列がBLOBの場合、base64に変換する必要はありません。 – hmuelner

+1

最初はありがとうございました。完璧なコードのようです。しかし、私はプロのプログラマーではないので、私はあなたからより多くの助けが必要です。しばらくお待ちください。 最初のブロックで部品を分解してみましょう QByteArrayとQBufferの両方が含まれています 質問がここに来て、なぜ2つのブレースが必要ですか?私はそれを書くかもしれないことを意味する QbyteArrayバイト; Qバッファバッファ(&バイト)。 buffer.open(QBuffer :: WriteOnly) 最後にwhatsイメージは? ありがとうございました – user289175

+0

@Septagram私はデータベースから画像を取り出して表示したいと思います。これはどうすればできますか? – Niklas

関連する問題