Bilder von DB herunterrechnen

serializable

Mitglied
Hallo zusammen,

mich würde einmal interessieren, ob es möglich ist, Bilder, die in in eine MySQL DB (Version 5) eingetragen werden, automatisch von der DB auf eine bestimmte vordefinierte Auflösung herunter rechnen zu lassen.

Kann ich soetwas mit MySQL bewerkstelligen ?



Vielen Dank

Grüße
 
Ein richtige Beispiel wie kann man speichern und lesen Bilder aus MySQL Tabelle,
hab mit Trolltech Qt4/C++ geschrieben, nützen wir BLOB Felder.

Zuerst: Erschaffen ein Tabelle, z.B.:
Code:
CREATE TABLE picture (
ID INTEGER AUTO_INCREMENT,
IMAGE BLOB,
PRIMARY KEY (ID)
) ENGINE=InnoDB;

2) Um lesen Bild zu QByteArray

Code:
QString fileName = "IMAGE.JPG";

QImage image(filaName);
LBL_IMAGE->setPixmap(QPixmap::fromImage(image)); // Put image into QLabel object (optional)

// load image to bytearray
QByteArray ba;
QFile f(fileName);
if(f.open(QIODevice::ReadOnly))
{
ba = f.readAll();
f.close();
}

// Speichern Bild in die Tabelle
QSqlDatabase::database().transaction();
QSqlQuery query;
query.prepare( "INSERT INTO picture ( IMAGE ) VALUES (:IMAGE)" );
query.bindValue(":IMAGE", ba);
query.exec();
if( query.lastError().isValid()) {
qDebug() << query.lastError().text();
QSqlDatabase::database().rollback();
} else
QSqlDatabase::database().commit();

3) Jetzt, wiederstellen wir ein Bild von DB

Code:
int idx = 1; // The records ID to recover

QSqlDatabase::database().transaction();
QSqlQuery query;
query.prepare("SELECT ID, IMAGE FROM picture WHERE ID=:ID");
query.bindValue(":ID", idx);
query.exec();
query.next();
if( query.lastError().isValid()) {
qDebug() << query.lastError().text();
QSqlDatabase::database().rollback();
} else {
QByteArray ba1 = query.value(1).toByteArray();
QPixmap pic;
pic.loadFromData( ba1);

// Show the image into a QLabel object
LBL_IMAGE->setPixmap(pic);
QSqlDatabase::database().commit();
}
 
Zurück