SVG: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
(→‎Tools: mention SVG-edit)
 
(17 intermediate revisions by 9 users not shown)
Line 1: Line 1:
: <small>''See [[Resources for presentations and other media]] for some of the SVG files on our wiki.''</small>
==Introduction==
SVG is a W3C standard for so-called drawings as opposed to bitmap images. An SVG document is a sequence of drawing commands in plain text. When the commands are rendered by a browser or other SVG rendering app, an image will be seen. These sequences of drawing commands take up less space than a bitmap. In addition, the SVG files, being plain text, can be compressed further by tools like gzip or a JFFS2 filesystem (actually most SVG readers will automagically unpack gzip-compressed <tt>.svgz</tt> files though that's not always true for editors).


{{Translations}}
Since the OLPC has limited storage, SVG imagery will be a major part of the content for the OLPC. Much educational material needs to be displayed in some form of diagram in order to best convey the material to the student.
Scalable Vector Graphics (SVG) is a W3C standard for vector artwork or drawings as opposed to bitmap images. An SVG document is a sequence of drawing commands in plain text. When the commands are rendered by a browser or other SVG rendering app, you see the image. These sequences of drawing commands usually take up less space than a bitmap. In addition, the SVG files, being plain text, can be compressed further by tools like gzip or a [[JFFS2]] filesystem.
(There is also a .svgz gzip-compressed format that some SVG readers will automagically unpack ''unclear if [[Browse]] does this for local files'').


JavaScript in an HTML page or within the SVG file itself can manipulate an SVG drawing, allowing interactive diagrams in [[Browse]]; see [[#Resources]] below for examples.
Authors of OLPC content should try to use SVG wherever possible. Only use bitmaps such as [[JPEG]] or [[PNG]] where it is not possible to use SVG.


== Use SVG files ==
There is a page on [[choosing image formats]] that will help you to understand the differences and how to know which format will be best for the intended use.


Since the OLPC has limited storage, SVG imagery is a major part of the content for the OLPC. SVG is very effective in displaying diagrammatic content on the XO.
More info can be found on [http://en.wikipedia.org/wiki/SVG Wikipedia].

Authors of OLPC content should try to use SVG wherever possible.
* Only use bitmaps such as [[JPEG]] or [[PNG]] where it is not possible to use SVG.
* Prefer SVG to PDF for single-page content images such as [[maps]]. A link to an SVG file will display in [[Browse]], while a PDFs must be downloaded, saved in the Journal, then launched in [[Read]]. There are tools to [http://www.google.com/search?q=PDF%20to%20SVG%20converter convert PDFs to SVG].

[[Choosing image formats]] will help you to understand the differences and how to know which format will be best for the intended use. See also [[Making SVG Icons for Sugar]].

More info can be found in [[wikipedia:SVG]].
==Tools==
==Tools==
;SVG-edit
;Inkscape:
:This web-based SVG editor runs entirely in any modern browser, including Browse. http://code.google.com/p/svg-edit/
This is an [http://www.inkscape.org/ open source drawing program] that supports much of the SVG standard. The project goal is to have complete support for SVG, XML and CSS. Extensions for Inkscape can be written in [[Python]] so application developers may be able to make creative use of this in developing educational software.
;Inkscape
;Flash converter:
:This is an [http://www.inkscape.org/ open source drawing program] that supports much of the SVG standard. The project goal is to have complete support for SVG, XML and CSS. Extensions for Inkscape can be written in [[Python]] so application developers may be able to make creative use of this in developing educational software.
If you have artwork in Flash format, you can convert it to SVG using this [http://www.eprg.org/~sgp/swf2svg.html online converter] or [http://www.titan.napier.ac.uk/~05011301/ this tool] whose source is available from the ''Files'' tab in the documentation.
;Flash converter
:If you have artwork in Flash format, you can convert it to SVG using this [http://www.eprg.org/~sgp/swf2svg.html online converter] or [http://www.titan.napier.ac.uk/~05011301/ this tool] whose source is available from the ''Files'' tab in the documentation.

== Other programs that can output SVG ==
;chemtool
:2D chemical structure editor
;FontForge
:Font editor for PS, TrueType and OpenType fonts. It is also a font format converter and can convert among PostScript (ASCII & binary Type 1, some Type 3s, some Type 0s), TrueType, and OpenType (Type2), CID-keyed, SVG, CFF and multiple-master fonts.
;Ploticus
:A Script driven business graphics package
;potrace
:A utility to transform bitmaps into vector graphics
;RLPlot
:GUI based program for displaying scientific data in standard formats.
;Scribus
:Open source desktop page layout program with the aim of producing commercial grade output in PDF and Postscript. SVG vector file output is also provided.
;Skencil
:An interactive vector drawing program
;Xara LX
:Versatile and mature piece of graphics software, tailored for web, print and publishing. Xtreme combines advanced and powerful vector illustration with integrated photo manipulation and DTP features

Since other vector graphics formats can be converted to SVG, many other tools can be used. There are also clipart libraries in SVG format, including the DiaCanvas2 package for Linux, and the [http://openclipart.org/ Open Clip Art Library].

Sugar activities can be given SVG capabilities with libraries such as python-qt4 (PyQt4), python-biggles and python-pychart.

== Free SVG images ==
The people at [http://webcvs.freedesktop.org/svg-icons/lila/gnome/scalable/apps/ freedesktop.org] have a lot (~800) of free svg's, released under gpl.
To download them with the correct directory-structure, try [[Svg-grabber.py|this script]]

Many of the images on Wikipedia were uploaded to Wikimedia commons as SVG files.
For example http://commons.wikimedia.org/wiki/Image:African_continent-de.svg displays as a PNG at a particular resolution, but the underlying file ( http://upload.wikimedia.org/wikipedia/commons/7/77/African_continent-de.svg at the time of writing) is a scalable SVG.

== Mozilla SVG ==
If you provide content for the XO, it will be rendered by the Mozilla [[XULRunner]] engine that the [[Browse]] activity uses (unless you write your own activity). So you should create files geared towards the Mozilla interpretation of the SVG 1.1 specification. Many SVG applications and files continue to use the idiosyncracies of the Adobe SVG player, particularly when it comes to embedding SVG images in HTML.

== Resources ==
* [http://developer.mozilla.org/en/SVG_in_Firefox SVG in Firefox]
* [http://jwatt.org/svg/authoring/ SVG authoring guidelines]

* [[FindTheCountry]] interactive game in SVG
* http://www.carto.net/papers/svg/samples/canvas.shtml is code to show/hide map layers.

[[Category:File formats]]

Latest revision as of 05:40, 22 September 2009

See Resources for presentations and other media for some of the SVG files on our wiki.
  english | 日本語 HowTo [ID# 218493]  +/-  

Scalable Vector Graphics (SVG) is a W3C standard for vector artwork or drawings as opposed to bitmap images. An SVG document is a sequence of drawing commands in plain text. When the commands are rendered by a browser or other SVG rendering app, you see the image. These sequences of drawing commands usually take up less space than a bitmap. In addition, the SVG files, being plain text, can be compressed further by tools like gzip or a JFFS2 filesystem. (There is also a .svgz gzip-compressed format that some SVG readers will automagically unpack unclear if Browse does this for local files).

JavaScript in an HTML page or within the SVG file itself can manipulate an SVG drawing, allowing interactive diagrams in Browse; see #Resources below for examples.

Use SVG files

Since the OLPC has limited storage, SVG imagery is a major part of the content for the OLPC. SVG is very effective in displaying diagrammatic content on the XO.

Authors of OLPC content should try to use SVG wherever possible.

  • Only use bitmaps such as JPEG or PNG where it is not possible to use SVG.
  • Prefer SVG to PDF for single-page content images such as maps. A link to an SVG file will display in Browse, while a PDFs must be downloaded, saved in the Journal, then launched in Read. There are tools to convert PDFs to SVG.

Choosing image formats will help you to understand the differences and how to know which format will be best for the intended use. See also Making SVG Icons for Sugar.

More info can be found in wikipedia:SVG.

Tools

SVG-edit
This web-based SVG editor runs entirely in any modern browser, including Browse. http://code.google.com/p/svg-edit/
Inkscape
This is an open source drawing program that supports much of the SVG standard. The project goal is to have complete support for SVG, XML and CSS. Extensions for Inkscape can be written in Python so application developers may be able to make creative use of this in developing educational software.
Flash converter
If you have artwork in Flash format, you can convert it to SVG using this online converter or this tool whose source is available from the Files tab in the documentation.

Other programs that can output SVG

chemtool
2D chemical structure editor
FontForge
Font editor for PS, TrueType and OpenType fonts. It is also a font format converter and can convert among PostScript (ASCII & binary Type 1, some Type 3s, some Type 0s), TrueType, and OpenType (Type2), CID-keyed, SVG, CFF and multiple-master fonts.
Ploticus
A Script driven business graphics package
potrace
A utility to transform bitmaps into vector graphics
RLPlot
GUI based program for displaying scientific data in standard formats.
Scribus
Open source desktop page layout program with the aim of producing commercial grade output in PDF and Postscript. SVG vector file output is also provided.
Skencil
An interactive vector drawing program
Xara LX
Versatile and mature piece of graphics software, tailored for web, print and publishing. Xtreme combines advanced and powerful vector illustration with integrated photo manipulation and DTP features

Since other vector graphics formats can be converted to SVG, many other tools can be used. There are also clipart libraries in SVG format, including the DiaCanvas2 package for Linux, and the Open Clip Art Library.

Sugar activities can be given SVG capabilities with libraries such as python-qt4 (PyQt4), python-biggles and python-pychart.

Free SVG images

The people at freedesktop.org have a lot (~800) of free svg's, released under gpl. To download them with the correct directory-structure, try this script

Many of the images on Wikipedia were uploaded to Wikimedia commons as SVG files. For example http://commons.wikimedia.org/wiki/Image:African_continent-de.svg displays as a PNG at a particular resolution, but the underlying file ( http://upload.wikimedia.org/wikipedia/commons/7/77/African_continent-de.svg at the time of writing) is a scalable SVG.

Mozilla SVG

If you provide content for the XO, it will be rendered by the Mozilla XULRunner engine that the Browse activity uses (unless you write your own activity). So you should create files geared towards the Mozilla interpretation of the SVG 1.1 specification. Many SVG applications and files continue to use the idiosyncracies of the Adobe SVG player, particularly when it comes to embedding SVG images in HTML.

Resources