Graphviz Issue Tracker
Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002300graphvizDotpublic2013-06-26 04:382013-07-09 02:47
Assigned Toellson 
PlatformLinuxOSCentosOS Version2.6.18-348.3.1.e
Summary0002300: taperred edges visible with SVG but not in PNG output
DescriptionHi, taperred edges are visible with SVG but not in PNG output . Please advice.

/home/revj/bin/dot -Tpng -o 1.png

/home/revj/bin/dot -Tsvg -o 1.svg

Please compare [^] and [^]

Thanks, Alexandru Toth
Additional Information$ /home/revj/bin/dot -v
dot - graphviz version 2.30.1 (20130625.0942)
libdir = "/home/revj/lib/graphviz"
Activated plugin library:
Using textlayout: textlayout:gd
Activated plugin library:
Using layout: dot:dot_layout
Activated plugin library:
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
        was successfully loaded.
    render : dot fig gd map pic pov ps svg tk vml vrml xdot
    layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout : textlayout
    device : canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pic plain plain-ext png pov ps ps2 svg svgz tk vml vmlz vrml wbmp xdot
    loadimage : (lib) eps gd gd2 gif jpe jpeg jpg png ps svg xbm

$ uname -a
Linux 2.6.18-348.3.1.el5PAE 0000001 SMP Mon Mar 11 20:30:57 EDT 2013 i686 i686 i386 GNU/Linux
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
User avatar (0000364)
alxtoth (reporter)
2013-06-26 04:44

Here is the DOT file for reference

digraph g {
graph [rankdir = "LR"];
inner [label="inner" style="filled" color="gray" shape="box"]
outer [label="outer" style="filled" color="gray" shape="box"]
inner -> outer [dir=back arrowhead=none arrowtail=none color="gray" style="tapered"];
"film" [label="film |film\.description AS description|film\.film_id AS FID|film\.length AS length|film\.rating AS rating|film\.rental_rate AS price|film\.title AS title| <3>GROUP BY film_id" shape="record"];
"film_category" [label="film_category | <2> category_id| <6> film_id" shape="record"];
"film_actor" [label="film_actor | <4> actor_id| <5> film_id" shape="record"];
"actor" [label="actor | <0> actor_id|GROUP_CONCAT \(CONCAT \(actor\.first_name\, _utf8\' \'\, actor\.last_name\) SEPARATOR \'\, \'\) AS actors" shape="record"];
"category" [label="category |category\.name AS category| <1> category_id" shape="record"];
"category":1 -> "film_category":2 [style="tapered" arrowhead=none arrowtail=none penwidth=3];
"film_category":6 -> "film":3 [style="tapered" arrowhead=none arrowtail=none penwidth=3];
"film_actor":5 -> "film":3 [arrowhead=none arrowtail=none];
"actor":0 -> "film_actor":4 [arrowhead=none arrowtail=none];
User avatar (0000365)
ellson (administrator)
2013-06-26 09:01

Please install the "graphviz-x" rpm, which includes the new pango/cairo rendering plugins, then just rerun the same command. The -Tpng rendering will now use cairo.

If cairo is available it is used by default. It is not included in the base package because it has dependencies on X11.

As to why the gd renderers couldn't be taught to do tapering, I don't know. Thats still a bug, I guess.
User avatar (0000366)
alxtoth (reporter)
2013-06-26 09:04

I installed my own graphviz with .configure (some local path parameter), make; make install. Please advise what else to install prior to graphviz. Do I need the whole the whole X server with dependencies ?

The default system install from RPM looks horrible as it does not find any fonts. Tried playing with fontconfig and GDIFONTPATH with no success.

User avatar (0000367)
ellson (administrator)
2013-06-26 09:53

If you build your own libcairo I think you can configure it without X. Otherwise, if installing from rpms, you will end up with most of X11 install.
Does it really matter? Its just a little filespace.

Did you build your own libgd? The gd plugin works best if gd was built with fontconfig and freetype. (Otherwise dot uses a really ugly font of last resort that is built in.)

The easiest way to populate your system with all the build dependencies that graphviz can use is to capture the stderr from:

    rpmbuild --rebuild graphviz-2.30.1-1.src.rpm

and then "yum install" all the missing rpms.
After that, you can play more freely with the configure options in your own build tree from the tar.gz.

If you are still having problem, please attach your config.log to this report.
User avatar (0000369)
erg (administrator)
2013-06-26 12:16

Tapered edges are implemented using the core drawing primitives. Thus, tapered edges should be available in all renderers. All that is required is the ability to draw filled polygons and beziers. In particular,
I get tapered edges if I use -Tpng:gd.

That being the case, I have absolutely no idea why the two outputs should be different.
User avatar (0000370)
ellson (administrator)
2013-06-26 12:45

There is some tapering in png attached to this report.

The issue is that, without cairo, there is no anti-aliasing.

Try: -Tpng:cairo:gd versus -Tpng:gd:gd
User avatar (0000371)
erg (administrator)
2013-06-26 12:57

Okay, then I leave this in your hands. Why are the top two edges in axltoth's png output whited out?
User avatar (0000372)
alxtoth (reporter)
2013-06-27 05:12


This happens in a shared server environment = no root access to install rpm, and no X11 .

Please advise what are the minimum dependencies to build graphviz such that it gets correct anti-aliasing for the tapered edges.

User avatar (0000373)
ellson (administrator)
2013-06-27 10:04

I'm not sure you're going to get very far ...

To start, you'll need pango, cairo, freetype, but you probably have to build your own to disable cairo's X11 dependencies. I've not tried this recently.

To get an idea of the dependencies of each plugin, you can look at its In particular, you need to build the "pango" plugin:

Indirectly, pango, cairo and freetype will bring their own additional dependencies.
User avatar (0000375)
alxtoth (reporter)
2013-06-28 03:17


One more bug: tapered edges are broken also in VML format (Microsoft vector format) .

VML bellow was generated from exactly same DOT as the SVG that has correct tapered edges, with "dot -Tvml " .. [^]

Here is a screenshot of Internet Explorer 8 rendering the VML : [^]

User avatar (0000376)
erg (administrator)
2013-06-28 10:15

Indeed, when I run IE8 on vml output, I get poor output plus the warning
  Sorry, this diagram will only display correctly on Internet Explorer 5 (and up) browsers.
The vml code generator was donated in 2007. Did it work then? In any case, it appears to be seriously broken now.
User avatar (0000378)
alxtoth (reporter)
2013-07-09 02:47

Previous versions of graphviz did not support tapered edges (vml or otherwise). For example version 2.28.0 (20120806.2001) doesn't .

- Issue History
Date Modified Username Field Change
2013-06-26 04:38 alxtoth New Issue
2013-06-26 04:44 alxtoth Note Added: 0000364
2013-06-26 09:01 ellson Note Added: 0000365
2013-06-26 09:04 alxtoth Note Added: 0000366
2013-06-26 09:53 ellson Note Added: 0000367
2013-06-26 12:16 erg Note Added: 0000369
2013-06-26 12:45 ellson Note Added: 0000370
2013-06-26 12:56 erg Assigned To => ellson
2013-06-26 12:56 erg Status new => assigned
2013-06-26 12:57 erg Note Added: 0000371
2013-06-27 05:12 alxtoth Note Added: 0000372
2013-06-27 10:04 ellson Note Added: 0000373
2013-06-28 03:17 alxtoth Note Added: 0000375
2013-06-28 10:15 erg Note Added: 0000376
2013-07-09 02:47 alxtoth Note Added: 0000378

MantisBT 1.2.5[^]
Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker