summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/BlurhashProvider.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/BlurhashProvider.cpp b/src/BlurhashProvider.cpp
index d4482419..1fdc9319 100644
--- a/src/BlurhashProvider.cpp
+++ b/src/BlurhashProvider.cpp
@@ -22,9 +22,14 @@ BlurhashRunnable::run()
         return;
     }
 
+    auto blurhashDecodeSize = m_requestedSize;
+    if (blurhashDecodeSize.height() > 100 && blurhashDecodeSize.width() > 100) {
+        blurhashDecodeSize.scale(100, 100, Qt::AspectRatioMode::KeepAspectRatio);
+    }
+
     auto decoded = blurhash::decode(QUrl::fromPercentEncoding(m_id.toUtf8()).toStdString(),
-                                    m_requestedSize.width(),
-                                    m_requestedSize.height());
+                                    blurhashDecodeSize.width(),
+                                    blurhashDecodeSize.height());
     if (decoded.image.empty()) {
         emit error(QStringLiteral("Failed decode!"));
         return;
@@ -36,5 +41,7 @@ BlurhashRunnable::run()
                  (int)decoded.width * 3,
                  QImage::Format_RGB888);
 
+    image = image.scaled(m_requestedSize);
+
     emit done(image.convertToFormat(QImage::Format_RGB32));
 }