- I wonder why the SVG-graphic devolpers use such an "improper"(?) rendering-
philosophy. All these articfacts on the Iran-flag would have been avoided, if the rendering is divided up logical into two steps: Firstly render the SVG-code to the size given in this SVG-code (or an integer multiple for large final sizes) to a pixel (discret) map.
Technical remark: The width/height specified in the SVG file is a generic ???length??? value [1], which can be in other units than pixels [2] and also can take non-integral values. [3]
I know this. But I wonder why an width/height length is given at all? The viewBox I would enforce and this is much better, IMHO. Therefore, if length/width is wanted, then this should give a different/further information, if useful.
I don't like to warm up the debatt, but if the SVG-size is larger than a fixed arbitrary limit, maybe it is better not to render to the maximum in vertical or horizontal direction, but only to the maximum such that the precise aspect ration is still given? Of cource you get other problems (or impossible) if this is strange like 701:401 or even bigger primes. :-/ But you will get anyway self-introduced problems if not rendering at the given SVG-size, because only for the last the original SVG-coder is responsible and not you. :)
BTW: This just springs to my mind: I discovered if defining a path with <path d="M 3,3 h 0" stroke-width="1" stroke-linecap="square"> you get a 1x0 square (no visible effect), not a 1x1 square as I would expect. But <path d="M 3,3 h 0.001" stroke-width="1" stroke-linecap="square"> shows a 1x1.001 rectangle (centered at 3,3.0005) as expected. Is this a known bug?
Achim