diff --git a/dist/changes-5.9.1 b/dist/changes-5.9.1 new file mode 100644 index 0000000000000000000000000000000000000000..e0a6a4b9c5c6cfd545c97f98c04d929cb62b044f --- /dev/null +++ b/dist/changes-5.9.1 @@ -0,0 +1,24 @@ +Qt 5.9.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Library * +**************************************************************************** + + - This release contains only minor code improvements. diff --git a/src/imageformats/doc/src/qtimageformats.qdoc b/src/imageformats/doc/src/qtimageformats.qdoc index 88521178696122d881c5e86454b4531ea34c6d58..2fea934a8df8e1378c5379dc41e58be30fd948c8 100644 --- a/src/imageformats/doc/src/qtimageformats.qdoc +++ b/src/imageformats/doc/src/qtimageformats.qdoc @@ -65,6 +65,10 @@ libraries. If not found, it may fall back on using a bundled copy (in provided for manual builds only, and not used as a fallback in case system libraries are unavailable. +\note For security reasons, the Direct Draw Surface (DDS) handler is not built +by default since Qt 5.8. Users who still want this handler can build it from the +source project. + \section2 Deployment When built, the Qt Image Formats plugins are located as dynamic diff --git a/src/plugins/imageformats/webp/qwebphandler.cpp b/src/plugins/imageformats/webp/qwebphandler.cpp index 0bd89f6fad7f07e5f245bc637fd1699c9fbd584c..ce90158a173f741609985ad3128bab3b606091e4 100644 --- a/src/plugins/imageformats/webp/qwebphandler.cpp +++ b/src/plugins/imageformats/webp/qwebphandler.cpp @@ -74,6 +74,10 @@ bool QWebpHandler::canRead() const if (m_scanState != ScanError) { setFormat(QByteArrayLiteral("webp")); + + if (m_features.has_animation && m_iter.frame_num >= m_frameCount) + return false; + return true; } return false; @@ -118,6 +122,8 @@ bool QWebpHandler::ensureScanned() const that->m_bgColor = QColor::fromRgba(QRgb(WebPDemuxGetI(m_demuxer, WEBP_FF_BACKGROUND_COLOR))); that->m_composited = new QImage(that->m_features.width, that->m_features.height, QImage::Format_ARGB32); + if (that->m_features.has_alpha) + that->m_composited->fill(Qt::transparent); // We do not reset device position since we have read in all data m_scanState = ScanSuccess; @@ -189,6 +195,8 @@ bool QWebpHandler::read(QImage *image) } else { // Animation QPainter painter(m_composited); + if (m_features.has_alpha && m_iter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND) + m_composited->fill(Qt::transparent); painter.drawImage(currentImageRect(), frame); *image = *m_composited; diff --git a/tests/auto/webp/tst_qwebp.cpp b/tests/auto/webp/tst_qwebp.cpp index d1d30dbefe1b7cbc99933f5c947d7910bb9faf48..ad4a376b53da73f7588710c6d13d357b7270cdee 100644 --- a/tests/auto/webp/tst_qwebp.cpp +++ b/tests/auto/webp/tst_qwebp.cpp @@ -127,6 +127,7 @@ void tst_qwebp::readAnimation() } QVERIFY(reader.read().isNull()); + QCOMPARE(reader.canRead(), !reader.supportsAnimation()); } void tst_qwebp::writeImage_data()