Original author(s) | Raph Levien |
---|---|
Developer(s) | GNOME Project |
Stable release | |
Repository | |
Written in | C, Rust |
Type | Graphics library |
License | GPLv2, LGPLv2 |
Website | wiki |
librsvg, (occasionally stylized as LibRsvg) [2] is a free software SVG rendering library written as part of the GNOME project, intended to be lightweight and portable. [3] The Linux command-line program rsvg-convert uses the library to turn SVG files into raster images.
librsvg uses two other libraries to perform tasks from reading the file to rendering to the screen:
Since v2.41.0 many parts have been rewritten in Rust. [4] [5]
librsvg is developed for the GNOME desktop environment and as such is used by GNOME Files and GNOME Loupe but is also intended to be used in other software applications. As a notable example, wikis hosted by Wikimedia use librsvg to render SVG images. [6] It was once picked for these web applications because it was decidedly "fast but not very accurate", according to MediaWiki. [7] As of May 2023 [update] , Wikipedia and Wikimedia Commons use a version of librsvg 2.44 to render SVG as PNG. [8] [9]
Upon switching to the cairo vector rendering engine in 2005, [10] [11] librsvg became more accurate and more visually pleasing. Since 2012 an independent developer published Win32 console ports rsvg-convert.exe, as of December 2017 [update] version 2.40.20. [12] The rsvg-view manual page is also available online. [13]
Version | Date | Comments |
---|---|---|
1.0.0 | 2001-05-08 | |
1.1.6 | 2002-03-07 | |
2.0.0 | 2002-06-19 | |
2.1.0 | 2002-09-27 | |
2.2.0 | 2003-01-20 | |
2.3.0 | 2003-04-08 | |
2.4.0 | 2003-09-08 | |
2.5.0 | 2003-12-07 | |
2.6.0 | 2004-03-08 | |
2.7.0 | 2004-03-10 | |
2.8.0 | 2004-09-03 | |
2.9.0 | 2005-01-25 | |
2.11.0 | 2005-08-25 | |
2.12.0 | 2005-09-15 | |
2.13.0 | 2005-10-21 | |
2.14.0 | 2006-02-25 | |
2.15.0 | 2006-05-11 | |
2.16.0 | 2006-08-31 | |
2.18.0 | 2007-07-24 | |
2.20.0 | 2008-01-19 | |
2.22.0 | 2008-02-21 | |
2.26.0 | 2009-03-16 | |
2.31.0 | 2010-07-02 | |
2.32.0 | 2010-09-27 | |
2.34.0 | 2011-04-03 | |
2.35.0 | 2011-11-14 | |
2.36.0 | 2012-03-26 | |
2.37.0 | 2013-01-10 | |
2.39.0 | 2013-08-16 | |
2.40.0 | 2013-10-14 | |
2.40.16 | 2016-06-09 | |
2.40.17 | 2017-04-07 | |
2.40.20 | 2017-12-16 | |
2.40.21 | 2020-02-26 | 2.40.21: Last version without Rust |
2.41.0 | 2017-01-04 | |
2.42.0 | 2018-01-09 | |
2.43.0 | 2018-06-12 | |
2.44.0 | 2018-08-23 | |
2.44.10 | 2018-12-11 | |
2.45.0 | 2018-11-17 | |
2.45.6 | 2019-05-14 | 2:45.6: First version only on Rust.[ clarification needed ] Requires Cairo 1.16.0 or later and Rust 1.30.0 or later [14] |
2.45.92 | 2019-09-02 | |
2.46.0 | 2019-09-09 | |
2.47.0 | 2019-10-29 | |
2.48.0 | 2020-03-07 | |
2.48.9 | 2020-11-05 | |
2.49.0 | 2020-05-29 | |
2.49.5 | 2020-09-04 | |
2.50.0 | 2020-09-10 | |
2.50.3 | 2021-01-28 | [15] | 2.50.3: version used on Wikimedia Commons as of May 2023
2.51.0 | 2021-02-03 | |
2.51.4 | 2021-07-09 | |
2.52.0 | 2021-09-15 | |
2.53.0 | 2022-01-18 | |
2.53.1 | 2022-02-12 | |
2.53.2 | 2022-03-12 | |
2.54.0 | 2022-03-16 | 2.54.1 2022-04-23; 2.54.2 2022-05-13; 2.54.3 2022-05-14; 2.54.4 2022-06-10; 2.54.5 2022-08-26 |
2.55.0 | 2022-08-03 | |
2.55.1 | 2022-09-05 | |
2.55.2 | 2023-03-16 | |
2.57.90 | 2024-01-25 | Latest version as of 2024-01-25 First version to use Rust crates for all image loading operations, eliminating gdk-pixbuf dependency. [16] |
On Linux with the librsvg2-bin package installed, [17] an SVG file can be converted to PNG as follows:
$rsvg-convert--format=png--output=diagram.pngdiagram.svg
Other supported output formats include PDF, XML, and valid SVG.
Multiple-image Network Graphics (MNG) is a graphics file format published in 2001 for animated images. Its specification is publicly documented and there are free software reference implementations available.
Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since 1999.
Vector graphics are a form of computer graphics in which visual images are created directly from geometric shapes defined on a Cartesian plane, such as points, lines, curves and polygons. The associated mechanisms may include vector display and printing hardware, vector data models and file formats, as well as the software based on these data models. Vector graphics are an alternative to raster or bitmap graphics, with each having advantages and disadvantages in specific situations.
GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.
Inkscape is a free and open-source vector graphics editor for traditional Unix-compatible systems such as GNU/Linux, BSD derivatives and Illumos, as well as Windows and macOS. It offers a rich set of features and is widely used for both artistic and technical illustrations such as cartoons, clip art, logos, typography, diagramming and flowcharting. It uses vector graphics to allow for sharp printouts and renderings at unlimited resolution and is not bound to a fixed number of pixels like raster graphics. Inkscape uses the standardized Scalable Vector Graphics (SVG) file format as its main format, which is supported by many other applications including web browsers. It can import and export various other file formats, including SVG, AI, EPS, PDF, PS and PNG.
Formatting Objects Processor is a Java application that converts XSL Formatting Objects (XSL-FO) files to PDF or other printable formats. FOP was originally developed by James Tauber who donated it to the Apache Software Foundation in 1999. It is part of the Apache XML Graphics project.
Glade Interface Designer is a graphical user interface builder for GTK, with additional components for GNOME. In its third version, Glade is programming language–independent, and does not produce code for events, but rather an XML file that is then used with an appropriate binding. See List of language bindings for GTK for the available ones.
Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different backends. Cairo uses hardware acceleration when available.
GDK is a library that acts as a wrapper around the low-level functions provided by the underlying windowing and graphics systems. GDK lies between the display server and the GTK library, handling basic rendering such as drawing primitives, raster graphics (bitmaps), cursors, fonts, as well as window events and drag-and-drop functionality.
A number of vector graphics editors exist for various platforms. Potential users of these editors will make a comparison of vector graphics editors based on factors such as the availability for the user's platform, the software license, the feature set, the merits of the user interface (UI) and the focus of the program. Some programs are more suitable for artistic work while others are better for technical drawings. Another important factor is the application's support of various vector and bitmap image formats for import and export.
gThumb is a free and open-source image viewer and image organizer with options to edit images. It is designed to have a clean and simple user interface and follows GNOME HIG, it integrates well with the GNOME desktop environment.
libxml2 is a software library for parsing XML documents. It is also the basis for the libxslt library which processes XSLT-1.0 stylesheets.
Poppler is a free and open-source software library for rendering Portable Document Format (PDF) documents. Its development is supported by freedesktop.org. Commonly used on Linux systems, it powers the PDF viewers of the GNOME and KDE desktop environments.
Synfig Studio is a free and open-source vector-based 2D animation software. It is created by Robert Quattlebaum with additional contributions by Adrian Bentley.
Libart is a free software graphics library of functions for 2D graphics supporting a superset of the PostScript imaging model. Libart was designed to be integrated with graphics, artwork, and illustration programs. It is written in optimized C and is fully compatible with C++. With a small footprint of 10,000 lines of code, it is especially suitable for embedded applications.
Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.
Mapnik is an open-source mapping toolkit for desktop and server based map rendering, written in C++. Artem Pavlenko, the original developer of Mapnik, set out with the explicit goal of creating beautiful maps by employing the sub-pixel anti-aliasing of the Anti-Grain Geometry (AGG) library. Mapnik now also has a Cairo rendering backend. For handling common software tasks such as memory management, file system access, regular expressions, and XML parsing, Mapnik utilizes the Boost C++ libraries. An XML file can be used to define a collection of mapping objects that determine the appearance of a map, or objects can be constructed programmatically in C++, Python, and Node.js.
Xena is open-source software for use in digital preservation. Xena is short for XML Electronic Normalising for Archives.
GTK Scene Graph Kit (GSK) is the rendering and scene graph API for GTK introduced with version 3.90. GSK lies between the graphical control elements (widgets) and the rendering.
Art of Illusion is a free software, and open source software package for making 3D graphics.
the librsvg maintainers … have now added cairo support to librsvg. Many thanks are due to Caleb Moore and Dom Lachowicz for this work. The source can be compiled --with-cairo and it builds separate librsvg-2-cairo.so and librsvg-2-base.so libraries
Librsvg-2.13 cannot link to libart since that backend was majorly broken when we released 2.13 and thus must link to cairo.