Inkscape

Inkscape
Inkscape 0.48.2, showing a red Lamborghini Gallardo
Preview release 0.91 (January 30, 2015 (2015-01-30)) [1]
Development status Active
Written in C++ with gtkmm, Python (extensions)
Operating system Windows, OS X, Linux
Platform IA-32 and x64
Size 93.3 MB
Available in 66 languages
Type Vector graphics editor
License GNU General Public License
Website .orginkscape

Inkscape is a free and open-source vector graphics editor; it can create or edit vector graphics such as illustrations, diagrams, line arts, charts, logos and complex paintings. Inkscape's primary vector graphics format is Scalable Vector Graphics (SVG) version 1.1.[2] While Inkscape can import and export several formats, all editing workflow inevitably occur within the constraints of the SVG format.[3]

Inkscape can render the primitive vector shapes (e.g. rectangles, ellipses, polygons, arcs, spirals, stars and isometric boxes), text and regions containing raster graphics. It supports image tracing, enabling the editor to create vector graphics from photos and other raster sources. Created shapes can be subjected to further transformations, such as moving, rotating, scaling and skewing. These objects may be filled with solid colors or color gradients, their borders stroked or their transparency changed. As of 2015, Inkscape does not support SVG animation or full Cascading Style Sheet (CSS) specifications.

Contents

  • History 1
  • Features 2
    • Object creation 2.1
    • Object manipulation 2.2
    • Styling objects 2.3
    • Operations on paths 2.4
    • Text support 2.5
    • Rendering 2.6
    • File formats 2.7
    • Other features 2.8
  • Interface and usability 3
  • Platform support 4
  • Version history 5
  • See also 6
  • References 7
  • Further reading 8
  • External links 9

History

Inkscape began in 2003 as a code fork of the Sodipodi project. Sodipodi, developed since 1999, was itself based on Raph Levien's Gill (Gnome Illustration Application).

The word Inkscape is a compound of the words ink and scape,[4] a play on the name of the Netscape web browser.[5]

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. With Inkscape, they said they would focus development on implementing the complete SVG standard, whereas Sodipodi development emphasized creating a general-purpose vector graphics editor, possibly at the expense of SVG.[6]

Since the fork, Inkscape's new developers changed it greatly: They rewrote it from C into C++; adopted the GTK+ toolkit C++ bindings (gtkmm); redesigned its user interface, and added a number of new features. Notably, its implementation of the SVG standard, although incomplete, has shown gradual improvement.[7]

Since 2005, Inkscape has participated in the Google Summer of Code program.[8]

Up until the end of November 2007, Inkscape's Launchpad.[9]

Features

Object creation

Inkscape 0.48.2, showing a rectangle (selected with the select tool), an ellipse, a star and two text objects

The basic objects in Inkscape are:

  • Paths: made with the Pencil tool, which allows freehand drawing of paths; the Pen tool, which allows the user to create a composite Bézier curve node-by-node curves and lines in the same path; the Calligraphy tool, which can be used to draw freehand calligraphic or brush-like strokes, or the Paint Bucket tool, which fills bounded areas of the image. The Calligraphy tool optionally can use pressure and tilt readings from graphic tablets. The Paint Bucket tool works optically rather than geometrically and can assist image tracing. The Spray Tool creates copies or clones of one or several items, select the item(s), then to Spray click on the canvas, move the mouse or scroll the mouse wheel.
  • Rectangles: created using the Rectangle tool. Corners of rectangles can be rounded.
  • 3D boxes: created using the 3D Box tool. The boxes have adjustable XYZ perspectives and configurable values for vanishing points. 3D boxes are in fact groups of paths and after ungrouping can be further modified.
  • Ellipses: created using the Ellipse tool. Ellipses and circles can be transformed into arcs (e.g. open half-circle) and segments (e.g. closed half-circle).
  • Stars/polygons: created using the Star and Polygon tool. Multi-pointed (3 to 1,024 points) stars with two control (base and tip) handles can be used to emulate spirographs. Polygons with one control (base) handle can be used to create items based on the number of sides hexagons, pentagons, etc.
  • Spirals: created using the Spiral tool, have a configurable number of turns (revolutions), divergence (density/sparseness of outer turns), inner radius (roll out from center)
  • Clones: Clones are child objects of an Original (parent) objects which can have different transformations applied from those of the original object. Clones can be created via Copies, the Spray tool or a Menu interface. Transformations include; size, position, rotation, blur, opacity, color and symmetry (layout). Clones are updated live whenever the original object changes.
  • Text: created with the Text tool. Texts can use any of the system fonts, and can be converted to paths, Unicode characters fonts are supported. Bold, Oblique (Italic), Alignments (left, right, center, full), Superscript, Subscript, Vertical and Horizontal text are implemented. All text objects can be transformed via Line Spacing, Letter Spacing, Word Spacing, Horizontal Kerning, Vertical Shift and Character Rotation either manually or via menu settings. Text can be put along a path, flowed into a shape or spell checked. Bulleted lists, numbered lists, indentations, and underlined text are not available as of version 0.48.
  • Raster graphics: Inkscape supports the export of bitmap images (as PNG images) of the whole drawing (all objects), the current selection, objects within the page outline and custom coordinates. Imports bitmap images, >File >Import allows the user to select either 'embed' or 'link' the image into the file. Pasting (v0.48) images into Inkscape automatically embeds images into the file. Inkscape supports importing and pasting of PNG, JPEG and BMP. Inkscape supports image tracing, the process of extracting vector graphics from raster sources.

Additionally, there are more specialized objects:

  • Spiro splines (swirls), This type of path creates smooth curves, similar to many gothic, floral, desktop and tattoo designs.
  • Connector-based paths, often used in flow charts, diagrams or schematics.
  • There is a render extension that will render objects onto your file via menu settings, examples include barcodes, calendars, grids, gears, spirographs, spheres and more.

Object manipulation

Screenshot of Inkscape 0.45 on Ubuntu, showing outline view

Every object in the drawing can be subjected to arbitrary affine transformations: moving, rotating, scaling, skewing and a configurable matrix. Transformation parameters can be also specified numerically in the Transform dialog. Transformations can snap to angles, grids, guidelines and nodes of other objects. Grids, guides and snapping properties are defined on a per-document basis. As an alternative to snapping, an Align and Distribute dialog is provided, which can perform common alignment tasks on selected objects: e.g. line them up in a specified direction, space them equally, scatter them at random and remove overlaps between objects.

Objects can be arbitrarily grouped together. Groups of objects behave in many respects like "atomic" objects: for instance, they can be cloned or assigned a paint. Objects making up a group can be edited without having to ungroup it first, via an Enter Group command: the group can then be edited like a temporary layer. Z-order of objects can be managed either using layers, or by manually moving the object up and down in the Z stack. Layers can be locked or hidden, preventing modifying and accidental selection.

A special tool, Create Tiled Clones, is provided to create symmetrical or grid-like drawings using various plane symmetries.

Objects can be cut, copied and pasted using a clipboard. However, as of version 0.46, Inkscape uses an internal variable rather than the system clipboard, which limits copy and paste operations to one application instance. Objects can be copied between documents by opening them from the File menu in an already opened window, rather than by opening a second file from the operating system's shell.

Styling objects

Each object in Inkscape has several attributes which determine its style. All of the attributes can generally be set for any object:

  • Fill: can be a solid color, a linear or radial gradient, a pattern, custom swatch, inherited from a parent object. The color selector has RGBA, HSL, Wheel and CMYK color options available, but all selected colors are currently converted to RGBA. Gradients can have multiple stops, radial supports optional direct or reflected gradients. All colors can have an alpha value specified. Patterns can be constructed from any collection of objects, or one of the several supplied stock patterns can be used.
  • Stroke fill: can have the same values as fill, but is applied to the object's stroke.
  • Stroke style: can vary in width, join styles of miter (configurable limit), rounded or bevel, cap styles of offset, round or full. Dashed strokes with configurable offsets are supported. Start, mid and end markers, of various types (arrows, dots, diamonds, etc...) are supported.
  • Opacity: specifies alpha value for all fill colors. Each object has a distinct opacity value, which e.g. can be used to make groups transparent.
  • Filters: there is an easy-to-use slider for Gaussian blur for each object. Categorized filter stacks using the SVG filters can be constructed using the Filters dialog.

Appearance of objects can be further changed by using masks and clipping paths, which can be created from arbitrary objects, including groups.

The style attributes are 'attached' to the source object, so after cutting/copying an object into the clipboard, the style's attributes can be pasted to another object.

Operations on paths

Inkscape has a comprehensive tool set to edit paths, as they are the basic element of a vector file. The Node tool allows editing single or multiple paths on single or multiple node levels by editing the position of nodes and control points of Bezier paths or Spiro curves. Path segments can be adjusted by dragging them. When multiple nodes are selected, they can be moved, scaled and rotated using keyboard shortcut or mouse controls. Additional nodes can be inserted into paths at arbitrary or even placements, and an effect can be used to insert nodes at predefined intervals. When nodes are deleted, the handles on remaining ones are adjusted to preserve the original shape as closely as possible.

Tweak tool is provided for more high-level, whole object(s) or node editing regions (parts) of an object. It can push, repel/attract, randomize positioning, shrink/enlarge, rotate, copy/delete selected whole objects. With parts of a path you can push, shrink/enlarge, repel/attract, roughen edges, blur and color. Nodes are dynamically created and deleted when needed while using this tool, so it can also be used on simple paths without pre-processing.

Other possible high-level operations on paths include offsetting or insetting a path by a fixed amount. Creating an unlinked dynamic offset of a path which can be fine tuned using the Node tool. Creating a linked offset of a path will update whenever the original is modified. Object converting another shape like a spiral or text into a path, converting the stroke of a shape to a path. Simplifying a path to contain less nodes while preserving the shape, or performing Boolean operations like union, difference, intersection or exclusion on them.

Inkscape includes a feature called Live Path Effects, which can apply various modifiers to a path. Envelope Deformation is available via the Path Effects and provides a perspective effect. There are more than a dozen of these live path effects. LPE can be stacked onto a single object and have interactive live on canvas and menu-based editing of the effects.

Text support

Inkscape supports text editing for both regular multi-line text (SVG's element) and flowed text (the non-standard element, formerly proposed for SVG 1.2). As of version 0.47, flowed text is not rendered by other applications, due to a lack of an appropriate parallel structure in the SVG document. The SVG 1.2 Tiny