From 9728a851cfa3c73ea7e69e314985cc4971184765 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 26 Jan 2026 15:36:14 -0500 Subject: [PATCH] Fix degraded timelapse gif quality --- CHANGELOG.md | 1 + include/ui/mapimageexporter.h | 2 ++ src/ui/mapimageexporter.cpp | 10 +++++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed516256..763a361c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project somewhat adheres to [Semantic Versioning](https://semver.org/sp - Add API functions for reading and writing text files. ### Fixed +- Fix degraded image quality in exported timelapse gifs. - Fix custom top-level data in the `encounters` object of `wild_encounters.json` being discarded if no `fields` data is present. ## [6.3.0] - 2025-12-26 diff --git a/include/ui/mapimageexporter.h b/include/ui/mapimageexporter.h index 7bb9c027..6ff49f09 100644 --- a/include/ui/mapimageexporter.h +++ b/include/ui/mapimageexporter.h @@ -114,6 +114,8 @@ private: void on_pushButton_Reset_pressed(); void on_spinBox_TimelapseDelay_editingFinished(); void on_spinBox_FrameSkip_editingFinished(); + + QImage::Format imageFormat() const; }; #endif // MAPIMAGEEXPORTER_H diff --git a/src/ui/mapimageexporter.cpp b/src/ui/mapimageexporter.cpp index e23f81e1..ab44566e 100644 --- a/src/ui/mapimageexporter.cpp +++ b/src/ui/mapimageexporter.cpp @@ -285,11 +285,15 @@ bool MapImageExporter::currentHistoryAppliesToFrame(QUndoStack *historyStack) { } } +QImage::Format MapImageExporter::imageFormat() const { + return (m_mode == ImageExporterMode::Timelapse) ? QImage::Format_RGB888 : QImage::Format_RGBA8888; +} + QImage MapImageExporter::getExpandedImage(const QImage &image, const QSize &targetSize, const QColor &fillColor) { if (image.width() >= targetSize.width() && image.height() >= targetSize.height()) return image; - QImage resizedImage(targetSize, QImage::Format_RGBA8888); + QImage resizedImage(targetSize, imageFormat()); QPainter painter(&resizedImage); resizedImage.fill(fillColor); @@ -448,7 +452,7 @@ QImage MapImageExporter::getStitchedImage(QProgressDialog *progress) { dimensions |= (QRect(map.x, map.y, map.map->pixelWidth(), map.map->pixelHeight()) + getMargins(map.map)); } - QImage stitchedImage(dimensions.width(), dimensions.height(), QImage::Format_RGBA8888); + QImage stitchedImage(dimensions.width(), dimensions.height(), imageFormat()); stitchedImage.fill(m_settings.fillColor); QPainter painter(&stitchedImage); @@ -583,7 +587,7 @@ QImage MapImageExporter::getFormattedMapImage() { QMargins margins = getMargins(m_map); QImage image(m_layout->image.width() + margins.left() + margins.right(), m_layout->image.height() + margins.top() + margins.bottom(), - QImage::Format_RGBA8888); + imageFormat()); image.fill(m_settings.fillColor); QPainter painter(&image);