From f338b1e8ad8dfc79efe0388e2849209adcbc0fb2 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Mon, 20 Jul 2020 16:09:42 -0400 Subject: [PATCH] feat: resize images --- lib/include/DOtherSide/DOtherSide.h | 2 ++ lib/src/DOtherSide.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/include/DOtherSide/DOtherSide.h b/lib/include/DOtherSide/DOtherSide.h index 6822bcf..2a0d43f 100644 --- a/lib/include/DOtherSide/DOtherSide.h +++ b/lib/include/DOtherSide/DOtherSide.h @@ -105,6 +105,8 @@ DOS_API DosQNetworkConfigurationManager *DOS_CALL dos_qncm_create(); DOS_API void DOS_CALL dos_qncm_delete(DosQNetworkConfigurationManager *vptr); +DOS_API char * DOS_CALL dos_image_resizer(char* imagePath, int maxSize); + /// \brief Sets the application icon DOS_API void DOS_CALL dos_qapplication_icon(const char *filename); diff --git a/lib/src/DOtherSide.cpp b/lib/src/DOtherSide.cpp index 66e141b..78bf032 100644 --- a/lib/src/DOtherSide.cpp +++ b/lib/src/DOtherSide.cpp @@ -32,6 +32,11 @@ #include #include #include +#include +#include +#include +#include +#include #include #include #include @@ -1113,3 +1118,23 @@ void dos_qncm_delete(::DosQNetworkConfigurationManager *vptr) } #include "DOtherSide.moc" + +char *dos_image_resizer(char* imagePath, int maxSize) +{ + QImage img(imagePath); + img.setColorSpace(QColorSpace::SRgb); + int w = img.width(); + int h = img.height(); + + QPixmap pixmap; + pixmap = pixmap.fromImage(img.scaled(maxSize < w ? maxSize : w, maxSize < h ? maxSize : h, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + + auto newFilePath = QDir::tempPath() + "/" + QUuid::createUuid().toString() + ".jpg"; + + QFile file(newFilePath); + file.open(QIODevice::WriteOnly); + pixmap.save(&file, "jpeg", 75); + file.close(); + + return convert_to_cstring(newFilePath.toUtf8()); +}