Project

General

Profile

Tips and Tricks » History » Revision 2

Revision 1 (Pieter Libin, 10/29/2009 02:24 PM) → Revision 2/10 (Pieter Libin, 10/29/2009 02:24 PM)

h1. Tips and Tricks 

 {{toc}} 


 h2. h3. Making a hard-copy of painted graphics 

 The primary use for the Wt painting API is to paint on a WPaintedWidget. Internally, this uses either a VML, SVG or HTML 5 canvas painting device to deliver the painting to the browser. 

 It is also possible to paint directly to an SVG image, which is a standardized generic vector graphics format, and increasingly supported by various tools. 

 You could use the SVG image as a starting point for exporting the painted graphics to raster format. Using the "imagemagick":http://www.imagemagick.org/script/index.php or "graphicsmagick":http://www.graphicsmagick.org/ libraries, you can convert from SVG to other formats using the library API or using the command line 'convert' tool. Using "inkscape":http://www.inkscape.org/, a sophisticated SVG editor, you may get high quality SVG rendering (with, compared to imagemagick, much better font support) from the command-line (see the manpage). Another option may be "librsvg":http://librsvg.sourceforge.net. 

 The WSvgImage class allows you to easily create an SVG image, and save it to a (file) stream, using the following template: 

 <pre> 
 WSvgImage image(400, 300); 
 WPainter painter(&image); 

 // paint things on the painter, like you normally do in WPaintedWidget::paintEvent(). 
 // 
 // e.g. you could do WCartesianChart *c = ... 
 // c->paint(painter); 

 painter.end(); 
 std::ofstream f("image.svg"); 
 image.write(f); 
 f.close(); 
 </pre>