Kozea / CairoSVG

Convert your vector images
https://courtbouillon.org/cairosvg
GNU Lesser General Public License v3.0
773 stars 151 forks source link

Correctly handle caps for 0-length lines #16

Open liZe opened 11 years ago

liZe commented 11 years ago

See: https://github.com/Kozea/CairoSVG/tree/master/test/fail/cap/.

ErikOnBike commented 8 years ago

It seems as if these are already working. I don't know which update fixed it, but I think this issue can be closed.

liZe commented 8 years ago

It's not working for me with Cairo 1.14.6 and the master branch of CairoSVG, the round caps are drawn but not the square ones. @ErikOnBike are you sure that it's working for you?

ErikOnBike commented 8 years ago

I just compared the original SVG (in both Safari and Chrome) and the SVG output from CairoSVG and they seem to be equal (visually). According to comment inside the file (painting-control-04-f.svg) the result should be "Test passes if there is a blue circle, a blue square, and no red on the page.". I see the blue square and blue circle (and no red) after converting the original into a SVG file. I'm also using Cairo 1.14.6 (on Mac OS X).

Funnily, in the Finder the preview shows something resembling a (8 points) star instead of a square. The preview is sometimes a bit 'off' in more cases, so that does not count as evidence that something is wrong.

liZe commented 8 years ago

I don't get the square! lol

ErikOnBike commented 8 years ago

Wow?!

I just wanted to show off that my version is okay and then....I just saw a single circle....with PNG as output format. If I convert to SVG it shows the circle AND the square. If I convert to PNG is shows ONLY the circle?!

If I convert to PDF it also ONLY shows the circle.

The converted SVG is really from CairoSVG (I checked the content). So there must be some difference in the Surface being used then...I assume... I will look into this.

ErikOnBike commented 8 years ago

Guillaume,

Duh....it works in SVG, because the resulting (converted) SVG simply keeps the line-cap as in the original.

Line caps on zero length lines is a Cairo issue. Fixing this might be done in the same manner as Mozilla (see link below). This would mean that we add a small delta on this type of line. What do you think? Is this a real problem (ie does it occur in real live examples)? The fix is not completely trivial (seeing the discussion).

https://bugzilla.mozilla.org/show_bug.cgi?id=589648