Commons:Transition to SVG

From Wikimedia Commons, the free media repository
Jump to: navigation, search
This project page in other languages:
Alemannisch | català | Deutsch | English | español | français | galego | 日本語 | 한국어 | português | русский | 中文 | +/−
Notice Please note that the deletion of superseded images has been suspended indefinitely; see Commons:Superseded images policy for more information.

The MediaWiki software running on our Wikimedia project wikis is enhanced to deal with SVG (Scalable Vector Graphics).

SVG has these advantages
  • It is not a pixel-based image file format and thus is scalable to any size without loss of sharpness (since it is resolution independent the file size is fixed).
  • Vector representations are often of much smaller file size (it does not increase with resolution, but with actual content or detail).
  • SVG is a much better fit with wiki editing because unlike raster images, it is fairly straightforward to edit SVGs (you can easily change things, objects, shapes. The style (colors, outlines, gradients) as well as existing elements (contours, text, …)).
  • Since Wikimedia projects are intended to be free content, SVGs are important, because a raster image that is difficult to modify is not free (you can extract content from SVG files without any problem and reuse it in other files).
SVG has these disadvantages
  • Problems with SVG images of poor technical quality have also caused more serious problems sometimes and limits have been set for SVG rendering time to try to limit this harm.
  • The servers cannot render all types of SVG features, so the generated PNGs are sometimes not as the author intended.

Even with the disadvantages of SVG, it is good to encourage the use of lossless image formats, so there is merit in providing SVG alternatives and encouraging people to use them. To request a raster image to be converted to SVG, add the label {{convert to SVG}} to its description page.

Flags

As flags are used heavily in all Wikimedia projects they need at first to be replaced with the SVG-version there. So basically you have to do the following steps:

  1. Check that the policy on the project you want to change wants this change. If it does not, you must not make the change at that project. The project policies rule when there is a conflict with preferences here. If there is no policy or you don't find it, ask first! Wikinews is one project which does not want this, in part because it needs a complete and accurate historical record of exactly what its old stories contained!
  2. Go to Category:Flags take your nation/country/city/whatever flag that is interesting to you and look if there is already a replacement SVG-version of it in Wikimedia Commons.
  3. If not, go to www.openclipart.org or create your own SVG-version of the flag (e.g. with Inkscape) and upload it to Wikimedia Commons.
  4. Mark the description page of the pixel-flag-version with a hint that there exists an SVG version, using the {{vector version available}} template. This suggests that people use the SVG version if practical.
  5. Give people and projects time to replace the image if they want — many months because it takes time to discover and decide.
  6. Go to Special:GlobalUsage and look up the current usage of the pixel-version-flag. Change the image links in articles to the SVG version, starting with those on your own project. Remember to ask for help from others on your project, as conversion is a lot of work.

Bots

The many bots that run on the wikis are very capable of this task and bot operators tend to be very eagerly willing to help and show off their monsters where they can. Make sure that you leave a message in the Village Pump of each project requesting bot help if it is available. Also, many, if not all, of the bot operators habitually read this mailing list and your request may be especially effective there. It takes a bot, depending on many different factors, from a few hours to perhaps a day to run through the whole Wikipedia replacing images; it takes a human eons and they're in a bad mood when they finish.

Please remember that a bot needs specific permission from every project in which it operates and that permission must be given for each different task the bot does. There is no permission which applies for all projects and all uses of a bot. Operating a bot on all projects is likely to get the bot and/or its operator blocked on all projects as an emergency measure if it breaks policies on the wikis where it is being used!

Notes

There have been complaints about PNG images being replaced by inferior quality SVG images, or, even, by factually incorrect ones. Especially the latter is not acceptable by an encyclopaedia project. Make absolutely sure that the quality of the replacement is the same or superior to the original, before marking it as redundant.

PNGs should not just be replaced en masse the instant an SVG replacement becomes available. It is often sufficient to label the image description page with a {{vector version available}} tag, and it will be migrated over to the SVG version by editors where appropriate.

It's highly recommended to use a valid SVG format. This will ensure that your image will remain usable over time and will make edits possible in other SVG editors. Files saved using Inkscape or Adobe Illustrator format sometimes contain non-standard elements which will generate rendering errors or trigger bugs on Wikimedia's render engine. To validate your files you can use the W3C MarkUp Validator, or, to check for common problems, which may prevent correct display in "rsvg", you may use the Commons:SVG Check.

Please be sure to use free (libre) and valid fonts in <text> (list of wikimedia supported svg fonts) elements to prevent render errors. This will help maintain the uniformity of style and the ability to edit your images in non-proprietary software and systems (not everybody can use proprietary fonts).

Limitations

MediaWiki SVG support has serious limitations when it comes to rendering:

  • The marker tag (<marker>) isn't supported correctly so that e.g. arrows aren't displayed. (This can be worked around by converting the relevant arrow to a path. To do this in Inkscape, select the path containing the arrow, then choose Stroke to Path from the Path menu.) Sometimes the defined marker element appears visible, by the property "overflow: visible".[1] It should be noted that the indication of the marker element is not in quotes.[2]
  • The marker is misplaced in Wikimedia if either position parameter in viewBox is given non-zero value to adjust the native position. Editor should change the viewBox position values to both 0 and readjust the marker position using refX and refY properties.
  • Text flow (<flow...>) is not supported – use <text> instead. In general, problems with text rendering can be fixed by converting the text to a path, but this has the following disadvantages:
    • The file size increases dramatically.
    • The text is not searchable as text any more.
    • Editing the text becomes harder, so changes like spelling corrections or translations require the text to be recreated from scratch.
  • The Gaussian blur filter is buggy (blurred objects do not show up at small sizes, are misplaced at some larger sizes and clipped at the edge of the canvas.)
  • Maximum rendering width of the PNG is limited at 2048 px.

When uploading SVG images an additional PNG version might be appropriate.

These and other bugs should be reported at the librsvg (GNOME) bugzilla, and example images get a tag Category:Pictures showing a librsvg bug.

Further information: Librsvg development funding on WikiMedia and also (for historical information ) SVG image support on MetaWiki

See also