How to Store and Retrieve Image on SQLite/bg

From Qt Wiki
Jump to: navigation, search
БългарскиEnglishEspañol

Как да съхраним и извлечем изображение или файл от 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();

3. Изображението е вече налично в базата от данни и може да бъде извлечено чрез заявка от тип SELECT, както всеки друг тип данни:

QSqlQuery query("SELECT imgdata FROM imgtable");
query.next();
QByteArray array = query.value(0).toByteArray();

4.Създаване на QPixmap от QByteArray:

QPixmap pixmap = QPixmap();
pixmap.loadFromData(array);

5. Променливата от тип Pixmap съдържа желаното изображение и може да бъде използвана за конкретните нужди на приложението, напр. като икона на бутон, изобразена чрез QLabel и т.н.