Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.5.1, 5.6.1
-
None
-
Windows 7 64-Bit, Linux
-
0fcd0160662941a9ba800b36671e88d82790bd95
Description
When rendering SVG Elements with multiple transform values ("transform-list" in W3C terms) containing at least one matrix transformation the resulting image is sometimes not correct. It seems that the combination of a matrix transform and other transformations is not handled properly, e.g.
transform="translate(...) matrix(...) scale(...)"
I have attached a small SVG file which shows this behaviour. Also attached is a corresponding PNG image rendered using QSVGRenderer and a PNG image example to show how other programs such as firefox or inkscape render this file.
The origin of the problem seems to be erroneous sequencing of a noncommutative matrix multiplication in parseTransformationMatrix() in qtsvg/qsvghandler.cpp. The attached patch for Qt 5.6.1 fixes this. After applying the patch the provided SVG (as well as other tested SVGs) appear to render fine.
Attachments
For Gerrit Dashboard: QTBUG-61568 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
199088,2 | Fix matrix multiplication in parseTransformationMatrix() | 5.9 | qt/qtsvg | Status: MERGED | +2 | 0 |