How to Store and Retrieve Image on SQLite/bg: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
'''Български''' [[How_to_Store_and_Retrieve_Image_on_SQLite|English]] [[How_to_Store_and_Retrieve_an_Image_or_File_with_SQLite_Spanish|Español]] | '''Български''' [[How_to_Store_and_Retrieve_Image_on_SQLite|English]] [[How_to_Store_and_Retrieve_an_Image_or_File_with_SQLite_Spanish|Español]] | ||
[[Category:HowTo]] | |||
[[Category:snippets]] | |||
= Как да съхраним и извлечем изображение или файл от SQLite = | = Как да съхраним и извлечем изображение или файл от SQLite = | ||
Line 5: | Line 7: | ||
Изображенията и файловете като цяло могат да се съхраняват в база данни. Ето един начин да направите това като изпълните следните стъпки: | Изображенията и файловете като цяло могат да се съхраняват в база данни. Ето един начин да направите това като изпълните следните стъпки: | ||
1. Прочетете файла в QByteArray. | 1. Прочетете файла в QByteArray. | ||
2. Съхранете QByteArray-я като бинарен обект(Binary Large Object) в базата данни. | |||
За пример : | За пример : | ||
<code> | <code> | ||
QFile file(fileName); | |||
if (!file.open(QIODevice::ReadOnly)) return; | |||
QByteArray byteArray = file.readAll(); | |||
QSqlQuery query; | QSqlQuery query; | ||
query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)"); | |||
query.addBindValue(byteArray); | |||
query.exec(); | |||
</code> | |||
Сега изображението/файла може да се получи като всеки друг вид данни: | Сега изображението/файла може да се получи като всеки друг вид данни: | ||
<code> | |||
QSqlQuery query("SELECT imgdata FROM imgtable"); | |||
query.next(); | |||
QByteArray array = query.value(0).toByteArray(); | |||
</code> | |||
Създаване на QPixmap от QByteArray : | Създаване на QPixmap от QByteArray : | ||
<code> | |||
QPixmap pixmap = QPixmap(); | |||
pixmap.loadFromData(array); | |||
</code> | |||
И сме говоти! Сега пиксмапа може да се използва в бутон каот икона или в QLabel и т.н. | И сме говоти! Сега пиксмапа може да се използва в бутон каот икона или в QLabel и т.н. |
Revision as of 13:04, 25 February 2015
Как да съхраним и извлечем изображение или файл от SQLite
Изображенията и файловете като цяло могат да се съхраняват в база данни. Ето един начин да направите това като изпълните следните стъпки:
1. Прочетете файла в QByteArray. 2. Съхранете QByteArray-я като бинарен обект(Binary Large Object) в базата данни.
За пример :
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly)) return;
QByteArray byteArray = file.readAll();
QSqlQuery query;
query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");
query.addBindValue(byteArray);
query.exec();
Сега изображението/файла може да се получи като всеки друг вид данни:
QSqlQuery query("SELECT imgdata FROM imgtable");
query.next();
QByteArray array = query.value(0).toByteArray();
Създаване на QPixmap от QByteArray :
QPixmap pixmap = QPixmap();
pixmap.loadFromData(array);
И сме говоти! Сега пиксмапа може да се използва в бутон каот икона или в QLabel и т.н.