From 144a3535db9f95e60972d3c3b6eaceb65a604577 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 26 Jun 2017 15:27:12 +0200 Subject: WebP: respect the frame dispose method for animations Task-number: QTBUG-61640 Change-Id: I9d0bfbafe15df338355cf2f5c77c2d4f8f00d27f Reviewed-by: Eirik Aavitsland --- src/plugins/imageformats/webp/qwebphandler.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/imageformats/webp/qwebphandler.cpp b/src/plugins/imageformats/webp/qwebphandler.cpp index 5a0ae4a..ce90158 100644 --- a/src/plugins/imageformats/webp/qwebphandler.cpp +++ b/src/plugins/imageformats/webp/qwebphandler.cpp @@ -122,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; @@ -193,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; -- cgit v1.2.3