Jump to content

Inkscape: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Jjzeidner (talk | contribs)
m added interview with Ted Gould
m added Vector graphics editors category
Line 185: Line 185:
[[Category:Scalable Vector Graphics]]
[[Category:Scalable Vector Graphics]]
[[Category:Free software programmed in C++]]
[[Category:Free software programmed in C++]]
[[Category:Vector graphics editors]]


[[als:Inkscape]]
[[als:Inkscape]]

Revision as of 15:19, 19 February 2008

Inkscape
Developer(s)The Inkscape Team
Stable release
0.45.1 / 23 March 2007
Preview release
0.46 pre 1 / 31 January 2008
Repository
Operating systemLinux, FreeBSD, Mac OS X, Windows
Available inMultilingual (40)
TypeVector graphics editor
LicenseGNU General Public License
Websitehttp://www.inkscape.org/

Inkscape is a vector graphics editor application. Its stated goal is to become a powerful graphic tool while being fully compliant with the XML, SVG and CSS standards.

Inkscape is primarily developed for Linux, but it is cross-platform and runs on Mac OS X (under X11) and other Unix-like operating systems, as well as Microsoft Windows. Inkscape's implementation of SVG and CSS standards is incomplete — most notably, it does not yet support most SVG filter effects, animation, or SVG fonts. Inkscape has multi-lingual support particularly for complex scripts, something currently lacking in most commercial vector graphics applications.

As of 2008, Inkscape is under active development, with new features being added regularly. Released under the terms of the GNU General Public License, Inkscape is free software.

History

Inkscape began in 2003 as a code fork of the Sodipodi project. Sodipodi, developed since 1999, was itself based on Gill, the work of Raph Levien.

The fork was led by a team of four former Sodipodi developers (Ted Gould, Bryce Harrington, Nathan Hurst, and MenTaLguY) who identified differences over project objectives, openness to third-party contributions, and technical disagreements as their reasons for forking. Inkscape, they claimed, would seek to focus development on implementing the complete SVG standard, whereas Sodipodi development had emphasized creating a general-purpose vector graphics editor, possibly at the expense of SVG.[1]

Since the fork, Inkscape has, among other things, changed from using the C programming language to C++; changed to the GTK+ toolkit C++ bindings (gtkmm); redesigned the user interface and added a number of new features. Its implementation of the SVG standard has shown gradual improvement, but is still incomplete.

Rather than top-down governance, its developers claim to encourage an egalitarian culture where authority stems from an individual developer's abilities and active involvement in the project. As a result, the project places special emphasis on giving full access to its source code repository to all active developers, and on participation in the larger open source community (often in the form of inter-project initiatives and spinoff projects like the Open Clip Art Library). While the project founders are still well-represented in the decision-making process, many newcomers have also come to play prominent roles. Among them is "bulia byak", architect of the radical user interface changes that have given Inkscape its present appearance. The new interface is oriented on Xara Xtreme's GUI.

After Xara announced plans to open source their own drawing application Xara Xtreme, they expressed interest in working closely with Inkscape to find ways the two projects can share code, coordinate efforts, and make open source graphics superior to anything available in the proprietary world.

In 2005, 2006 and 2007 Inkscape has participated in Google's Summer of Code program.[2]

Up until the end of November 2007, Inkscape's bug tracking system was hosted on Sourceforge, however it was announced on 21 November 2007, that they would be moving to Launchpad.[3]

Features

Object creation

  • Drawing:
    • Pencil tool (freehand drawing with stroked paths)
    • Pen tool (creating paths with Bézier curves and straight lines)
    • Calligraphy tool (freehand drawing with calligraphic strokes, tablet pressure/angle support)
  • Shape tools:
    • Rectangles (optionally with rounded corners)
    • Ellipses (optionally circles, arcs, segments)
    • Stars/polygons (optionally rounded or randomized)
    • Spirals
  • Text tool (regular, multiline or flowed text)
  • Linked bitmap images, either imported or rasterized from selected objects (a separate utility for embedding linked images comes with the program)
  • Clones ("live" linked copies of objects). Other programs refer to similar functionality as "symbols".

Object manipulation

  • Affine transformations (moving, scaling, rotating, skewing), both interactively and by specifying numeric values
  • Z-order operations
  • Grouping objects, with a way to "select in group" without ungrouping, or "enter the group" making it a temporary layer
  • Layers, with a way to lock and/or hide individual layers, rearrange them, etc; layers can form a hierarchical tree
  • Copying and pasting objects
  • Alignment and distribution commands, including grid arrange, randomization, unclumping
  • A tool to create patterns of clones, using wallpaper symmetries plus arbitrary scales, shifts, rotates, and color changes, optionally randomized
  • Grid and guide snapping

Styling objects

  • Color selector (RGB, HSL, CMYK, color wheel), color palette, picker ("dropper") tool
  • Fill opacity, stroke opacity, master opacity, gradient stop opacity
  • Gradients: linear and elliptic, may have multiple stops; can be edited on canvas with draggable and mergeable handles
  • Pattern fills made from any objects
  • 7 filter effects
    • feGaussianBlur - Gaussian blur
    • feImage - used for using an external raster image
    • feBlend - used for object blending other than via alpha (development version only)
    • feComposite - used for altering one object, via another (development version only)
    • feConvolveMatrix - (development version only)
    • feOffset - used to offset the output relative to the input (development version only)
    • The development version also supports the rendering of some other filters (but does not support editing them through the UI) (e.g. Diffuse lighting)
  • Masks and clipping paths
  • Dashed strokes, with predefined dash patterns
  • Path markers (e.g. arrowheads)
  • Ability to copy/paste style between objects

The developmental version at least partially supports all filters, except feFlood and feTile.

Operations on paths

  • Node editing: moving nodes and Bézier curve handles, node alignment and distribution, scaling and rotating node groups, "node sculpting" (proportional editing of multiple nodes)
  • Converting to path (for text objects or shapes), including converting stroke to path
  • Boolean operations (union, intersection, difference, exclusion, division)
  • Path simplification, with variable threshold
  • Path insetting and outsetting, including dynamic and linked offset objects
  • Clipping paths (non-destructive clipping)
  • Bitmap tracing (both color and b/w)
  • Pattern along path: a general pattern object (such as a text or a path) can be bended, repeated and/or stretched on a reference path

Text support

  • Multi-line text (SVG 1.0/1.1 <text>)
  • Flowed text in frame(s) (<flowRoot>, formerly proposed for SVG 1.2)
  • Full on-canvas editability, including styled text spans
  • Uses any outline fonts installed on the system
  • Can use any scripts and languages supported by the Pango library including complex scripts (e.g. Hebrew, Arabic, Thai, Tibetan etc.)
  • Kerning, letter-spacing, line-spacing adjustments
  • Text on path (both text and path remain editable)

Rendering

  • 256x (25600%) maximum zoom
  • Fully anti-aliased display
  • Alpha transparency support for display and PNG export
  • Outline (wireframe) mode
  • Complete "as you drag" rendering of objects during interactive transformations

Miscellaneous

  • Connector tool for diagrams
    • automatic routing of connectors to avoid intersections with objects
    • automatic graph layout functionality to automatically arrange networks of objects and connectors
  • Collaborative editing over a network (whiteboard)
  • Live watching and editing the document tree in the XML editor
  • PNG export
  • PostScript and PDF export (with limitations, e.g. pattern fills are not exported as of version 0.45)
  • Command line options for export, conversions, and analysis of SVG files
  • RDF metadata (authorship, date, license, etc.)
  • Extension support
  • User interface is translated in more than 40 languages

Interface and usability

One of the priorities of the Inkscape project is interface consistency and usability. This includes efforts to follow the GNOME Human interface guidelines, universal keyboard accessibility, and convenient on-canvas editing. Inkscape has achieved significant progress in usability since the project started.

The number of floating dialog boxes has been reduced, with their functions available using keyboard shortcuts or in the docked toolbars in the editing window. The tool controls bar at the top of the window always displays the controls relevant to the current tool.

All transformations (not only moving but also scaling and rotating) have keyboard shortcuts with consistent modifiers (e.g. Alt transforms by 1 screen pixel at the current zoom, Shift multiplies the transformation by 10, etc.); these keys work on nodes in Node tool as well as on objects in Selector. The most common operations (such as transformations, zooming, z-order) have convenient one-key shortcuts.

Inkscape provides floating tooltips and status bar hints for all buttons, controls, commands, keys, and on-canvas handles. It comes with a complete keyboard and mouse reference (in HTML and SVG) and several interactive tutorials in SVG.

The interface of Sodipodi (Inkscape's predecessor) was partly based on those of CorelDRAW and GIMP. The current Inkscape interface has been partially influenced by that of Xara Xtreme.

Versions

  • Version 0.45.1 (March 23, 2007) was a bugfix release.
  • Version 0.45 (February 5, 2007) has support for Gaussian blur, pattern along path and many other minor modifications to existing features.
  • Version 0.44.1 was a bugfix release.
  • Version 0.44 (June 24, 2006) added a Layers dialog, support for clipping and masking, improved PDF export with transparency, and performance improvements.
  • Version 0.43 (November 19, 2005) added Connector tool, collaborative editing, tablet pressure/angle sensitivity, and Node tool enhancements.
  • Version 0.42 (July 26, 2005) added flowed text support, styling text spans, enhanced effects support, and the new gradient tool.
  • Version 0.41 (February 10, 2005) added the clone tiler tool and color tracing, plus many bugfixes.
  • Version 0.40 added support for layers, bitmap tracing, and text on path.
  • Version 0.39 was the first release to use the Pango library, bringing better support for more languages, as well as support for markers, clones, and pattern fills.
  • Version 0.38 was a bug fix release, but it also featured text kerning and letterspacing, multistage gradients, and many usability enhancements.
  • Version 0.37 saw the addition of boolean path operations and path inset/outset.
  • Version 0.36 was the first release with the reorganized UI using a menu bar and docked context-sensitive toolbars in the document window.
  • Version 0.35 (November 2, 2003) was the first release of Inkscape, very similar to Sodipodi version 0.32.

See also

References

  1. ^ "Initial announcement of Inkscape fork on sodipodi mailing list".
  2. ^ "Google Summer of Code entry in the Inkscape developers' wiki".
  3. ^ "Inkscape moving to Launchpad".