From 5c360b67ea44a1aa285d2cfe4a2ce162184a8bd4 Mon Sep 17 00:00:00 2001
From: andrewsoncha <65234283+andrewsoncha@users.noreply.github.com>
Date: Tue, 7 Apr 2026 23:39:53 -0400
Subject: [PATCH] Requests: Give correct MIME in GetSourceScreenshot
Added code to look up the correct MIME type for the
requested image format and return the base64 with
the correct MIME format in GetSourceScreenshot
---
src/requesthandler/RequestHandler_Sources.cpp | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/requesthandler/RequestHandler_Sources.cpp b/src/requesthandler/RequestHandler_Sources.cpp
index b3da7896..46967052 100644
--- a/src/requesthandler/RequestHandler_Sources.cpp
+++ b/src/requesthandler/RequestHandler_Sources.cpp
@@ -22,6 +22,8 @@ with this program. If not, see
#include
#include
#include
+#include
+#include
#include "RequestHandler.h"
@@ -187,6 +189,15 @@ RequestResult RequestHandler::GetSourceScreenshot(const Request &request)
return RequestResult::Error(RequestStatus::InvalidRequestField,
"Your specified image format is invalid or not supported by this system.");
+ // Used to get the correct MIME type that is compatible with web browsers.
+ // Ex: Both when requested "imageFormat" is "jpeg" and "jpg", the returned MIME type should be "image/jpeg" for both.
+ // See Issue #1298
+ QMimeDatabase mimeDatabase;
+ // Create fake file path with user requested image format(file extension)
+ QString fileName = QString::fromStdString("1." + imageFormat);
+ QMimeType mimeType = mimeDatabase.mimeTypeForFile(QFileInfo(fileName));
+ QString responseMimeStr = mimeType.name();
+
uint32_t requestedWidth{0};
uint32_t requestedHeight{0};
int compressionQuality{-1};
@@ -227,10 +238,11 @@ RequestResult RequestHandler::GetSourceScreenshot(const Request &request)
buffer.close();
- QString encodedPicture = QString("data:image/%1;base64,").arg(imageFormat.c_str()).append(encodedImgBytes.toBase64());
+ QString encodedPicture = QString("data:%1;base64,").arg(responseMimeStr).append(encodedImgBytes.toBase64());
json responseData;
responseData["imageData"] = encodedPicture.toStdString();
+
return RequestResult::Success(responseData);
}