--- D:/Softs/SDK/Qt/5.9.2/Src/qtimageformats/src/plugins/imageformats/webp/qwebphandler.cpp mar. sept. 26 12:11:56 2017 +++ D:/Softs/SDK/QtSrc/5.9.2/src/qtimageformats/src/plugins/imageformats/webp/qwebphandler.cpp ven. nov. 3 21:57:21 2017 @@ -178 +178,2 @@ bool QWebpHandler::read(QImage *image) - QImage frame(m_iter.width, m_iter.height, QImage::Format_ARGB32); + QImage::Format format = m_features.has_alpha? QImage::Format_ARGB32 : QImage::Format_RGB888; + QImage frame(m_iter.width, m_iter.height, format); @@ -180,0 +182 @@ bool QWebpHandler::read(QImage *image) + if (format == QImage::Format_ARGB32) { @@ -182,3 +184,3 @@ bool QWebpHandler::read(QImage *image) - if (!WebPDecodeBGRAInto( - reinterpret_cast(m_iter.fragment.bytes), m_iter.fragment.size, - output, output_size, frame.bytesPerLine())) + if (!WebPDecodeBGRAInto( + reinterpret_cast(m_iter.fragment.bytes), m_iter.fragment.size, + output, output_size, frame.bytesPerLine())) @@ -186,3 +188,3 @@ bool QWebpHandler::read(QImage *image) - if (!WebPDecodeARGBInto( - reinterpret_cast(m_iter.fragment.bytes), m_iter.fragment.size, - output, output_size, frame.bytesPerLine())) + if (!WebPDecodeARGBInto( + reinterpret_cast(m_iter.fragment.bytes), m_iter.fragment.size, + output, output_size, frame.bytesPerLine())) @@ -190 +192,7 @@ bool QWebpHandler::read(QImage *image) - return false; + return false; + } else { + if (!WebPDecodeRGBInto( + reinterpret_cast(m_iter.fragment.bytes), m_iter.fragment.size, + output, output_size, frame.bytesPerLine())) + return false; + }