Commit a1504e8e authored by Eirik Aavitsland's avatar Eirik Aavitsland
Browse files

WebP: Fix wrong default quality level for writing


If a negative (i.e. illegal/unset) quality value was set to the WebP
handler, it would just bound it to 0 (minimum quality level). This
would happen on every save where no explicit quality level had been
requested on the QImageWriter.
Fix by copying the jpeg handler's behavior: If a negative value is
set, use the default level (75) when storing.

[ChangeLog][WebP handler] Fixed default quality level for writing

Task-number: QTBUG-64437
Change-Id: I0f1cabba6cea6851c6a813bf5bf7ab8e8c49ddfb
Reviewed-by: default avatarAndy Shaw <andy.shaw@qt.io>
Showing with 3 additions and 6 deletions
...@@ -48,7 +48,6 @@ ...@@ -48,7 +48,6 @@
static const int riffHeaderSize = 12; // RIFF_HEADER_SIZE from webp/format_constants.h static const int riffHeaderSize = 12; // RIFF_HEADER_SIZE from webp/format_constants.h
QWebpHandler::QWebpHandler() : QWebpHandler::QWebpHandler() :
m_lossless(false),
m_quality(75), m_quality(75),
m_scanState(ScanNotScanned), m_scanState(ScanNotScanned),
m_features(), m_features(),
...@@ -250,8 +249,8 @@ bool QWebpHandler::write(const QImage &image) ...@@ -250,8 +249,8 @@ bool QWebpHandler::write(const QImage &image)
return false; return false;
} }
config.lossless = m_lossless; config.quality = m_quality < 0 ? 75 : qMin(m_quality, 100);
config.quality = m_quality; config.lossless = (config.quality >= 100);
picture.writer = pictureWriter; picture.writer = pictureWriter;
picture.custom_ptr = device(); picture.custom_ptr = device();
...@@ -289,8 +288,7 @@ void QWebpHandler::setOption(ImageOption option, const QVariant &value) ...@@ -289,8 +288,7 @@ void QWebpHandler::setOption(ImageOption option, const QVariant &value)
{ {
switch (option) { switch (option) {
case Quality: case Quality:
m_quality = qBound(0, value.toInt(), 100); m_quality = value.toInt();
m_lossless = (m_quality >= 100);
return; return;
default: default:
break; break;
......
...@@ -85,7 +85,6 @@ private: ...@@ -85,7 +85,6 @@ private:
ScanSuccess = 1, ScanSuccess = 1,
}; };
bool m_lossless;
int m_quality; int m_quality;
mutable ScanState m_scanState; mutable ScanState m_scanState;
WebPBitstreamFeatures m_features; WebPBitstreamFeatures m_features;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment