@@ -71,7 +71,7 @@ void QtImageReader::Open()
7171 if (!is_open)
7272 {
7373 bool success = true ;
74- image = std::shared_ptr<QImage>( new QImage ()) ;
74+ bool loaded = false ;
7575
7676#if USE_RESVG == 1
7777 // If defined and found in CMake, utilize the libresvg for parsing
@@ -80,38 +80,32 @@ void QtImageReader::Open()
8080 if (path.toLower ().endsWith (" .svg" ) || path.toLower ().endsWith (" .svgz" )) {
8181
8282 ResvgRenderer renderer (path);
83- if (!renderer.isValid ()) {
84- // Attempt to open file (old method using Qt5 limited SVG parsing)
85- success = image->load (path);
86- if (success) {
87- image = std::shared_ptr<QImage>(new QImage (image->convertToFormat (QImage::Format_RGBA8888)));
88- }
89- } else {
83+ if (renderer.isValid ()) {
9084
91- image = std::shared_ptr<QImage>(new QImage (renderer.defaultSize (), QImage::Format_RGBA8888 ));
85+ image = std::shared_ptr<QImage>(new QImage (renderer.defaultSize (), QImage::Format_ARGB32_Premultiplied ));
9286 image->fill (Qt::transparent);
9387
9488 QPainter p (image.get ());
9589 renderer.render (&p);
9690 p.end ();
91+ loaded = true ;
9792 }
93+ }
94+ #endif
9895
99- } else {
100- // Attempt to open file (old method)
96+ if (!loaded) {
97+ // Attempt to open file using Qt's build in image processing capabilities
98+ image = std::shared_ptr<QImage>(new QImage ());
10199 success = image->load (path);
102- if (success)
103- image = std::shared_ptr<QImage>(new QImage (image->convertToFormat (QImage::Format_RGBA8888)));
104100 }
105- #else
106- // Attempt to open file using Qt's build in image processing capabilities
107- success = image->load (path);
108- if (success)
109- image = std::shared_ptr<QImage>(new QImage (image->convertToFormat (QImage::Format_RGBA8888)));
110- #endif
111101
112- if (!success)
102+ if (!success) {
113103 // raise exception
114104 throw InvalidFile (" File could not be opened." , path.toStdString ());
105+ }
106+
107+ // Convert to proper format
108+ image = std::shared_ptr<QImage>(new QImage (image->convertToFormat (QImage::Format_RGBA8888)));
115109
116110 // Update image properties
117111 info.has_audio = false ;
0 commit comments