// Создание и установление связи между объектамиQByteArray *qByteArray = new QByteArray();QBuffer *qBuffer = new QBuffer(qByteArray, this);QDataStream *qDataStream = new QDataStream(qBuffer);qDebug() << qByteArray->count(); // Выводиться 0if (qImage.byteCount != 0){ // Заходит в этот блок qBuffer->open(QIODevice::WriteOnly); qImage.save(qDataStream->device); qBuffer->close();}qDebug() << qByteArray->count(); // Выводиться 0
C++ (Qt)qImage.save(&qBuffer, "PNG");
qBuffer->open(QIODevice::WriteOnly);qBuffer->setData(qSqlQuery->value(qSqlQuery->record().indexOf("PHOTO")).toByteArray());qBuffer->close();if (qByteArray->count() !=0){// Сюда не заходит qImage.laod(*qByteArray, "JPEG");}
qDebug() << qSqlQuery->record().indexOf("PHOTO")).toByteArray().count(); // 12868qImage.laod(qSqlQuery->value(qSqlQuery->record().indexOf("PHOTO")).toByteArray(), "JPEG");qDebug() << qImage.byteCount(); // 0 - Почему?
qImage.laodFromData(qSqlQuery->value(qSqlQuery->record().indexOf("PHOTO")).toByteArray(), "JPEG");
QFile file("before.png"); file.open(QIODevice::ReadOnly); QByteArray baToSend = file.readAll(); query.prepare("insert into \"images\" (img) values (:img)"); query.bindValue(":img",baToSend); qDebug() << "exec send query: " << query.exec(); query.clear(); qDebug() << "exec save query: " << query.exec("select \"img\" from \"images\""); query.first(); QByteArray baToSave = query.record().value("img").toByteArray(); QImage imgToSave; qDebug() << "load from bytearray: "<< imgToSave.loadFromData(baToSave, "png"); qDebug() << "saving: " << imgToSave.save("after.png","png",100);