91 lines
2.3 KiB
C++
91 lines
2.3 KiB
C++
|
#include "uploadableimage.h"
|
||
|
|
||
|
|
||
|
#include <QBuffer>
|
||
|
#include <QDebug>
|
||
|
#include <QFileInfo>
|
||
|
#include <QUrl>
|
||
|
|
||
|
void UploadableImage::setSource(const QString &a) {
|
||
|
if (a != m_source) {
|
||
|
m_source = a;
|
||
|
//m_base64 = "";
|
||
|
m_mimetype = "";
|
||
|
m_filename = "";
|
||
|
|
||
|
qDebug() << "UploadableImage::setSource : " << m_source;
|
||
|
|
||
|
if (m_source=="") {
|
||
|
emit sourceChanged();
|
||
|
//emit base64Changed();
|
||
|
emit mimetypeChanged();
|
||
|
emit filenameChanged();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
QImage fullimage = QImage(QUrl(m_source).toLocalFile());
|
||
|
if (fullimage.width() > 800 || fullimage.height() > 800) {
|
||
|
if (fullimage.width() > fullimage.height()) {
|
||
|
m_image = fullimage.scaledToWidth(800);
|
||
|
} else {
|
||
|
m_image = fullimage.scaledToHeight(800);
|
||
|
}
|
||
|
} else {
|
||
|
m_image = fullimage;
|
||
|
}
|
||
|
qDebug() << "UploadableImage::setSource : " << m_image.width() << "x" << m_image.height();
|
||
|
emit sourceChanged();
|
||
|
|
||
|
QFileInfo fi(m_source);
|
||
|
|
||
|
m_filename = fi.fileName();
|
||
|
emit filenameChanged();
|
||
|
|
||
|
QString filetype = fi.suffix().toUpper();
|
||
|
if (filetype!="PNG" && filetype!="JPG") {
|
||
|
filetype = "JPG";
|
||
|
}
|
||
|
qDebug() << "UploadableImage::setSource : " << "Saving as " << filetype;
|
||
|
|
||
|
m_mimetype = "image/"+filetype.toLower();
|
||
|
emit mimetypeChanged();
|
||
|
|
||
|
/*
|
||
|
QByteArray byteArray;
|
||
|
QBuffer buffer(&byteArray);
|
||
|
m_image.save(&buffer, filetype.toLatin1().constData());
|
||
|
QString b64 = QString::fromLatin1(byteArray.toBase64().data());
|
||
|
|
||
|
for(int k=0; k<b64.length(); k+=76) {
|
||
|
m_base64 += b64.mid(k,76) + "\n";
|
||
|
}
|
||
|
m_base64 = m_base64.trimmed();
|
||
|
|
||
|
emit base64Changed();
|
||
|
*/
|
||
|
}
|
||
|
}
|
||
|
|
||
|
QString UploadableImage::source() const {
|
||
|
return m_source;
|
||
|
}
|
||
|
|
||
|
//QString UploadableImage::base64() const {
|
||
|
// return m_base64;
|
||
|
//}
|
||
|
|
||
|
QString UploadableImage::filename() const {
|
||
|
return m_filename;
|
||
|
}
|
||
|
|
||
|
QString UploadableImage::mimetype() const {
|
||
|
return m_mimetype;
|
||
|
}
|
||
|
|
||
|
QByteArray UploadableImage::bytes() {
|
||
|
QByteArray byteArray;
|
||
|
QBuffer buffer(&byteArray);
|
||
|
m_image.save(&buffer, "PNG");
|
||
|
return byteArray;
|
||
|
}
|