OSDN Git Service

use Z_BEST_SPEED as default quality for PNG images
authorIvailo Monev <xakepa10@gmail.com>
Thu, 24 Jun 2021 11:55:35 +0000 (14:55 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Thu, 24 Jun 2021 11:55:35 +0000 (14:55 +0300)
same as level 1 which is used in rcc, for reference:
https://www.zlib.net/manual.html

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/gui/image/qpnghandler.cpp

index 35965fb..dc4cfcb 100644 (file)
 #include "qvector.h"
 #include "qdrawhelper_p.h"
 
+#include <zlib.h>
 #include <png.h>
 #include <pngconf.h>
 
 QT_BEGIN_NAMESPACE
 
+enum { QPNGDefaultQuality = Z_BEST_SPEED };
+
 #if Q_BYTE_ORDER == Q_BIG_ENDIAN
 #  define QFILLER_ORDER PNG_FILLER_BEFORE
 #else
@@ -58,7 +61,7 @@ public:
     };
 
     QPngHandlerPrivate(QPngHandler *qq)
-        : gamma(0.0), quality(2), png_ptr(0), info_ptr(0),
+        : gamma(0.0), quality(QPNGDefaultQuality), png_ptr(0), info_ptr(0),
           end_info(0), row_pointers(0), state(Ready), q(qq)
     { }
 
@@ -679,7 +682,7 @@ bool QPngHandler::write(const QImage &image)
         quality = qMin(quality, 100);
         quality = (100-quality) * 9 / 91; // map [0,100] -> [9,0]
     } else {
-        quality = 2;
+        quality = QPNGDefaultQuality;
     }
     writer.setGamma(d->gamma);
     return writer.writeImage(image, quality);