Difference between revisions of "Release notes/0.45"
AlanHorkan (talk | contribs) (keyboard shortcuts) |
(Transclude list of other releases) |
||
(257 intermediate revisions by 30 users not shown) | |||
Line 1: | Line 1: | ||
= Inkscape 0.45.1 changes with respect to 0.45 = | |||
*Patch [ 1667939 ]: fix crash when tile-tracing with too small clones | |||
*Patch [ 1666532 ]: Broken link in inkview man page | |||
*Patch [ 1665447 ]: fix for the blur quantization bug 1617082 | |||
*Patch [ 1664849 ]: fix for 1662589: increase blur margins | |||
*Patch [ 1664004 ]: embedimage.py with fixed search order | |||
*Patch [ 1662649 ]: markers.svg with reversed order | |||
*Crudely improve check-markup for { markup, fix translations with bugs in that area (dz and zh_TW). | |||
*Patch [ 1659404 ]: Set locale directory from environment variable | |||
*Patch [ 1657072 ]: fix for bug 1654495 | |||
*Patch [ 1654636 ]: defocus dropper checkboxes | |||
*Adding japanese.nsh and russian.nsh into files that should go into the release tarball | |||
*Correct russian translation | |||
*Patch [ 1651797 ]: fix for attributes when saving/save-a-copy | |||
*Patch [ 1651752 ]: fix dropper tool | |||
*Pattern along path extension fixed on Windows | |||
*Include libtiff3.dll in the Windows distribution, fixing crash when opening TIFF files | |||
*Patch [ 1673067 ]: fix blur export on flowtext | |||
*Patch [ 1678075 ]: fix FontInstance.cpp compile issue | |||
*Patch [ 1673502 ]: fix broken Envelope (Summers Night) effect | |||
*Patch [ 1680182 ]: fix pattern inversion on bool op (bug 1659445) | |||
*Patch [ 1681754 ]: fix crash when editing text with multiple tspans | |||
*Patch [ 1682425 ]: fix bug 1679477 (crash exporting gradients to ODG) | |||
*Khmer translation now installs correctly | |||
*Updated Slovak translation | |||
*Updated Bulgarian translation | |||
*Updated Catalan translation | |||
*Updated Czech translation | |||
*Security: fixed format string overflows in dialogs (CVE-2007-1463) and whiteboard Jabber protocol (CVE-2007-1464). | |||
= Inkscape 0.45: overview = | = Inkscape 0.45: overview = | ||
This release brings the exciting new features developed by the Google Summer of Code 2006 participants, as well as tons of other improvements across the board. Here are the highlights: | |||
* '''Gaussian blur''' is the first SVG filter supported by Inkscape. You can blur any object to any extent - yet it remains vector and fully editable. This gives a huge boost to Inkscape as a creative art tool. | |||
* '''Display speed and interactivity''': not only does Inkscape render faster, but it can now respond to user input before it finished redrawing the screen, which greatly improves the responsiveness (perceived speed or interactivity) of the program. | |||
* '''History dialog''' makes it easy to to review your editing session and jump to any step of it, undoing and redoing multiple actions with one click. | |||
* Several important tool features are added, notably the new selection mode in '''Node tool''' and the adjustable rounded caps in '''Calligraphic pen'''. | |||
* '''Bitmap tracing''' works better for multi-color traces, sports a redesigned dialog and several new options. | |||
* Many new '''extension effects''' are added, including '''Color effects''' and '''Pattern along path'''. | |||
* The '''Outline mode''' has got many fixes and improvements, including a keyboard shortcut. | |||
* Several new commands in '''Help''' menu open various Inkscape-related pages in your default browser, making Inkscape reference information more accessible as you work. | |||
* Dozens of smaller '''features''' are added throughout the program, and hundreds of '''bugs''' are fixed. | |||
= SVG filters: Gaussian blur = | |||
Thanks to Google's Summer of Code program, Inkscape now has basic support for [http://www.w3.org/TR/SVG11/filters.html SVG filters]. The only filter enabled so far is '''Gaussian blur'''. | |||
With it, you can softly and naturally blur any Inkscape objects: paths, shapes, groups, text, images. Clones inherit blurring from their original, but they can also be blurred independently from the original (you can create blurred clones with Tile Clones, too). Both the fill and stroke of an object are blurred together, creating semitransparent margins that smoothly blend into the background. | |||
Gaussian blur enables a wide range of photorealistic effects: arbitrarily shaped shades and lights, depth of field, drop shadows, glows, etc. Also, blurred objects can be used as masks for other objects to achieve the "feathered mask" effect. | |||
* To blur selected objects, open the Fill and Stroke dialog (Ctrl+Shift+F) and use the '''Blur''' slider. The blur value is a percentage, with 100% corresponding to a blurring radius (standard deviation of Gaussian function) of 1/8 of the object's bounding box' perimeter (that is, for a square, a blur of 100% will have the radius equal to half a side, which turns any shape into an amorphous cloud). | |||
* The '''Tile Clones''' dialog also supports blurring. On the '''Blur & opacity''' tab, you can set the blur percentage per row or per column of your tiling, as well as randomize blurring and make it alternate (all the same options as for Opacity). | |||
* The quality of on-screen blur display is controlled by the '''Blur quality''' option on the new '''Filters''' tab of Inkscape Preferences (Ctrl+Shift+P). The available options range from best quality/slowest display to worst quality/fastest display, the default being in the middle of the range. Any setting except the "best quality" may introduce some rendering artifacts, especially when blurring thin strokes; on the other hand, the "best quality" setting may make Inkscape extremely slow at high zooms. These settings only affect the screen display of blurred objects; bitmap export always uses the best quality (and may therefore become quite slow for images with a lot of blur). | |||
Here are a few tips on using blur: | |||
* '''Masks and clipping''' are applied ''after'' blur. That is, if you clip an object and then blur it (or blur it first and then clip - it makes no difference), the clipped edges will remain crisp. Often, this is what you want. If, however, you want to blur the clipped/masked edges too (possibly with a different radius), you can use grouping: group the clipped object with some other object (which you can then delete from the group) and blur the group. | |||
* A simple '''drop shadow''' is now very easy to do: just copy the object, paint the copy black, blur it, shift away a bit and lower it to the bottom. However, such a shadow does not update when you edit the foreground object. If your object is already black (or, more generally, if you want the shadow to be the same color as the object), you can clone instead of copy to make the shadow auto-updating. But what if your foreground object is not black but you need an auto-updating black shadow? Here's a recipe: unset the object's fill (it becomes black); create ''two'' clones of it; put one clone on top and paint any color you want; put the other clone at bottom, blur it and shift sideways. Now you can edit the unset-fill original (use Alt+click to select it) and everything will update. | |||
* If an object has a fill that you don't want to blur (e.g. pattern, or if it's a bitmap), but you just want to '''feather the edges''', use a blurred transparency mask. For this, copy the object; paint it white; blur it as needed; scale the blurred copy down so its blur margins are entirely within the original object; select both the original and the blurred mask; do Object > Mask > Set. | |||
* '''Transforming''' a blurred object '''transforms its blur''', too. This applies to a non-uniform scaling as well, so by squeezing a blurred object you make its blur squeezed as well. So, the easiest way to blur a path horizontally more than vertically is this: stretch it upwards without blur, then apply blur and squeeze it back into the original shape. (This only works if the stretched path does not already have a Transform attribute.) | |||
* You can combine '''blurring with gradients'''. For example, an ellipse with elliptic opacity gradient will look much softer and more natural when blurred. An object with a horizontal linear opacity gradient, when blurred, will look as if it's more blurred on its transparent side than on its opaque side. | |||
* A '''clone of a blurred object''' inherits the blur of the original. Therefore, such a clone can be blurred ''more'', but you can't "unblur" it to make the clone sharper than its original (unless, of course, you unlink it). The Fill and Stroke dialog shows you the amount of the blur applied to this particular object; however, if the object is a clone of an already blurred original, the dialog does not reflect that. | |||
* Note that '''Firefox 2.0''' does not support SVG filters, so your files will be displayed in Firefox 2.0 without blur. However, filter support has been added in the current development version and will be included in Firefox 3.0. The Opera web browser, as well as librsvg (used by Wikipedia) and Batik, support filters correctly in their current versions. | |||
= Undo history = | = Undo history = | ||
= | * Inkscape now features a <b>History Dialog</b> accessible via <b>Ctrl+Shift+H</b> or Edit > Undo History. All changes made to the document since it was opened are recorded here. | ||
:* In the dialog, changes are listed from the '''oldest (top)''' to the '''newest (bottom)'''. | |||
:* The type of each change is indicated by an '''icon''' and a short '''description'''. | |||
:* For readability, consecutive changes of the same type are placed in a '''collapsible branch''' showing a triangle marker and the number of the hidden actions in the branch. | |||
:* By clicking on an event in the list, you can easily '''move through the undo history''', i.e. undo or redo any number of actions with one click. | |||
* The Undo and Redo commands in the Edit menu display the descriptions of the commands to be undone and redone, correspondingly. (These are the same descriptions that you see in the History dialog.) | |||
= Rendering improvements = | |||
* <b>Interruptible display</b>: Previously, Inkscape could not do anything until it finishes the current screen redraw. Now the redraw is made interruptible, so that Inkscape responds to mouse and keyboard input and can abort the current redraw and start over if you do some screen-changing operation. As a result, Inkscape now feels '''much snappier and more interactive'''. This interruptibility is fine-tuned for some continuous-drag operations (such as node dragging) so that a balance is achieved between responsiveness and completeness of display. | |||
* | * Screen render is faster by '''2-3%''' overall: | ||
* | :* Complex drawings with '''transparency''' are faster by up to '''5%'''. | ||
* | :* '''Radial gradients''' are rendered faster by at least '''10%'''. | ||
* Rendering (compositing) quality has been improved. This is most visible with (partially) transparent gradients: '''banding''' is a lot less pronounced now. Speed has also been improved in some cases. | |||
* Display is more responsive when working at high zoom levels when using a tablet. | * Display is more responsive when working at high zoom levels when using a tablet. | ||
* | = Tools = | ||
== Node tool == | |||
* You can <b>grow or shrink node selection</b> by hovering the mouse pointer over a node and using <b>mousewheel</b> (up = grow, down = shrink) or the keys <b>PageUp</b> (grow) and <b>PageDown</b> (shrink). ''Growing'' adds the closest unselected node to the selection; shrinking deselects the farthest selected node. There are two modes that differ by how the closest/farthest nodes are chosen: | |||
:* <b>Spatial selection</b> (mousewheel, PageUp/PageDown): distances to nodes are measured directly, regardless of which subpath a node belongs to. | |||
:* <b>Linear selection</b> (Ctrl+mousewheel, Ctrl+PageUp/Ctrl+PageDown): node distances are measured ''along the path'', and only the nodes belonging to the same subpath as the hovered node are considered (i.e. other subpaths are never selected). | |||
:This technique is convenient for quickly selecting an area in a complex path starting from a center - for example, for node sculpting. | |||
== Dropper == | |||
* Instead of the confusing toggle button, now the Controls bar for the Dropper tool has two checkboxes, '''Pick alpha''' and '''Set alpha''', which work as follows. Suppose you have an object selected and, using Dropper, click on an object which has red (#FF0000) fill and 0.5 opacity (half-transparent). | |||
:* If the "Pick alpha" checkbox is off, the selected object will get the fill color #800000 (i.e. faded-out red) and fill opacity will be at 1.0 (opaque). | |||
:* If the "Pick alpha" checkbox is on but "Set alpha" is off, the selected object will get the fill color #FF0000 (red) and fill opacity will be at 1.0. | |||
:* If both "Pick alpha" and "Set alpha" are on, the selected object will get the fill color #FF0000 (red) and fill opacity will be at 0.5 (half-transparent). | |||
:If you Shift+click instead of click, the same changes will be made to stroke color and stroke opacity, correspondingly. Note that in no situation can Dropper change the ''master opacity'' of the selected object(s) (only the fill/stroke opacity), although it can pick it just as it does any other kind of opacity. | |||
== Calligraphy == | |||
* A new numeric parameter, <b>Caps</b>, controls the amount of protruding at the ends of calligraphic strokes. This parameter can range from 0 (flat caps, default behavior in previous versions) through 1 (approximately half-circle caps) and up to 5 (long elliptic caps). Rounded caps much improve the look of low-fixation strokes, simulating a rounded pen. | |||
* The "Drag" parameter has been renamed to <b>Wiggle</b> with a value inversion (i.e. low drag corresponds to high wiggle, and vice versa). Increase this parameter (default is 0) to make the pen waver and wiggle in curly patterns. | |||
* As a first step towards a redesign of the tools' controls, the '''Controls bar of the Calligraphy pen''' has been upgraded. Now it no longer prevents the Inkscape window from resizing narrower than the bar. The items on the far right end of the bar which didn't fit in a narrow window are still accessible through an '''expansion menu''' which allows you to toggle switches, select commands, and set values of numeric fields. Also, each editable numeric value field has a new '''right-click menu''' with some common values which often allows you to set a desired value much faster than by scrolling the control or typing the value into it. | |||
* With low or zero Fixation parameter, some users of tablet pens experienced "blobs" (brief reversals of a stroke's right/left edges, causing "holes" and "bubbles" in a calligraphic stroke), especially often at the start of a stroke. Hopefully this problem is now fixed without reducing the responsiveness of the tool. | |||
= Outline mode = | |||
* A new menu command (<b>View > Display Mode > Toggle</b>) and a new keyboard shortcut (<b>Ctrl+<keypad 5></b>) switch the display mode from Normal to Outline and back. | |||
* The window title displays "<b>(outline)</b>" next to the file name when that editing window is in Outline mode. | |||
* An object with <b>mask and/or clipping path</b>, when viewed in Outline mode, now displays both the object itself and its clipping path and mask as objects, using different outline colors. By default, <b>clippaths use green</b> outlines, and <b>masks use blue</b>. | |||
* <b>Images</b> in Outline mode are displayed as <b>red</b> (by default) frames with two diagonals. | |||
* An object with no fill and no stroke, invisible and not selectable by mouse clicking in normal mode, can now be <b>picked by a mouse click</b> in the Outline mode using its visible outline. | |||
* The bug whereby stroked shapes didn't change stroke width when switching to Outline mode or back is fixed. | |||
* All outline colors are changeable by editing the "wireframecolors" group inside "options" in the preferences file (~/.inkscape/preferences.xml). The "onlight" and "ondark" attributes set the colors of the regular object outlines on light and dark backgrounds (default black and white correspondingly); the "images", "clips", and "masks" attributes set the colors of images, clipping paths, and masks (defaults are red, green, and blue correspondingly). Each attribute is a decimal integer corresponding to the hex RRGGBBAA of the color. | |||
* To cater for specialized uses, such as preparing input for personal media cutters, Inkscape now has an option to start in the Outline mode upon launch. To enable this, add the following line to your preferences.xml file: | |||
:: <group id="startmode" outline="1"/> | |||
:placing it after the <group id="options"> opening tag. | |||
= Keyboard profiles = | |||
The previous release allowed sets of keybindings (keymaps) to be created for Inkscape in the style of other applications. Two more keymaps have been added: | |||
* '''Adobe Illustrator''' | |||
* '''Macromedia Freehand''' | |||
Of course not every feature in these other programs has a direct match to features in Inkscape; so, if you can, please '''help us out''' by reporting any problems you may have or improvements you would like to request. | |||
Additionally, a keymap that focuses on tablet-based illustration and drawing work has been added: | |||
* '''right-handed-illustration.xml''' | |||
This keymap places all commonly-used commands under the left hand, so that the user's hands rarely leave the keyboard or the tablet/stylus. | |||
(To enable a profile, copy it into <code>default.xml</code> in the same directory, overwriting the old file. To restore the default Inkscape set, copy <code>inkscape.xml</code> into <code>default.xml</code>.) | |||
More of Inkscape's keys are implemented as actions and are therefore available for remapping via keyboard profiles. New actions include '''EditSelectNext''' and '''EditSelectPrev''' for selecting next/previous object or node (by default, they are bound to Tab/Shift+Tab; as a result of becoming global actions, these keys now work in all tools and not only in Selector and Node tool as before). | |||
= Extension effects = | |||
Inkscape's extension effects, written in Python using the '''inkex''' utility class, are currently a major growth point of the project. They allow new developers to create functionality very quickly, without having to learn Inkscape's huge C/C++ codebase. However, eventually we plan to move many of these effects into the core of Inkscape, which will make them much faster and more interactive. From this viewpoint, effects can be considered a quick way to prototype and test the algorithms and UI controls of the future Inkscape features. However, this does not prevent effects from being genuinely useful in everyday work, and in this version we have several excellent additions. | |||
== New effects == | |||
* '''Pattern along path''': A new powerful extension in the "Generate from path" submenu allows you to bend, repeat and/or stretch a pattern object (which can be a path or a group) along a "skeleton" path. This makes it easy to create a variety of patterned and shaped strokes. (This obsoletes the old "Kochify" extension which is removed.) | |||
:Effect's parameters include: | |||
:* ''Copies of the pattern'' selects one of the four modes: '''Single stretched''': one copy of the pattern is placed on the skeleton path and stretched/squeezed to match its length; '''Repeated stretched''': as many copies as would fit are placed along the skeleton path and stretched to fit exactly; '''Single''' and '''Repeated''': same but without stretching. | |||
:* ''Deformation type'' can be one of: '''Snake''' bends the pattern flatly in the plane of the drawing, the width not depending on direction; '''Ribbon''' bends it as a vertical ribbon or like a calligraphic stroke with maximum fixation, so that width depends on direction (minimum for vertical parts of the stroke, maximum for horizontal). | |||
:* Several parameters allow you to adjust spacing between the copies of the pattern (for Multiple modes) and their offset in two directions (along the skeleton path and perpendicular to it). | |||
:* Normally the effect assumes that the pattern object is horizontal and bends its horizontal axis (at mid-height) along the skeleton path. There's a checkbox that allows you to use a '''vertical pattern''' instead. | |||
:Some examples of using this effect are shown on a screenshot at [http://inkscape.org/screenshots/gallery/inkscape-0.45-patternalongpath.png]. | |||
* '''Color effects''': A new group of extensions in the '''Color''' submenu of the Effects menu allows you to adjust all colors of a selection at once. These commands affect both fill and stroke colors, including gradients (but not bitmaps). The commands include: | |||
:* a full set of '''HSL adjustments''' (increasing/decreasing hue, saturation, or lightness by 5%), | |||
:* '''Brighter''' and '''Darker''' (adjust brightness up or down by 10%), | |||
:* '''Desaturate''', | |||
:* '''Grayscale''', | |||
:* '''Negative''', | |||
:* commands for removing or swapping the '''Red''', '''Green''', '''Blue''' channels, | |||
:* a '''Custom''' command where you can set your own formulas for modifying the color channels. | |||
:Some examples of using this effect are shown on a screenshot at [http://inkscape.org/screenshots/gallery/inkscape-0.45-coloreffects.png]. | |||
:Note: undoing color changes on gradients exposes a bug where an object seems to "disappear"; this is only a display issue (caused by the order in which gradients and their users are restored on undo) not causing any loss of information. Also, on large documents and large selections with gradients, Python's XPath code may get quite slow. Despite these shortcomings, we decided to add this extension, because it's genuinely useful functionality which was so far missing in Inkscape. | |||
* Recent fixes in the processing of SVG <defs /> have made it possible to implement the often requested '''Color Markers to Match Stroke''' effect. It is no longer necessary to hand-edit XML to recolor arrowheads; just change the stroke color of your path and call this effect to recolor its markers to match. | |||
* '''Lorem ipsum''' (in "Render" submenu) is a new extension that creates the traditional Latin-like random text for design mock-ups. The number of paragraphs, the number of sentences per paragraph and the possible fluctuation of the number of sentences (for uneven paragraphs) can be adjusted. If no flowed text element is selected, a new one in a new layer is created, matching the size of the canvas. | |||
* '''Fractalize''' (in "Modify Path" submenu) replaces each segment of the selected path by a crooked line, subdivided to the given depth, with randomly displaced nodes. | |||
* '''g2png''': The new group-to-PNG Python extension (g2png) is an easy way to export any group or layer to individual PNG files. It was first created for use in the [http://www.le-radar.com/?mm/inkscape Inkscape User Manual] (also available in SVN in the user_manual module) but is also interesting for many other uses. If e.g. you have to draw a set of icons, you can draw them in the same document, thus making copying, duplicating, cloning etc. easier. Then just create a group for each icon, and with the extension, each group ends up in its own PNG file. | |||
== Improved effects == | |||
* The '''Function Plotter''' has been extended, providing greater flexibility in x- and y-range definition. | |||
* The '''Measure Path''' extension is improved with several new parameters added (units, scale, precision, distance from path). | |||
* The '''Extract One Image''' extension is fixed to automatically append filename extension to the created bitmap file. | |||
* The "Blur Edge" extension is renamed into '''Inset/Outset Halo''' to avoid confusion with the real Gaussian blur that we now support, as well as to better describe what this extension actually does: From the selected path, it creates a group of inset and outset paths that form a stepped "halo" around the object. | |||
== Infrastructure == | |||
* '''3 new parameter types''' have been added to the extension effect UI: '''tabs''', '''enumerations''' and '''optiongroups''' (radio buttons). Examples are available of how to use these parameters in INX files: the new Function Plotter uses tabs; enumerations are used by the Pattern along path extension; and a small developer example is given to illustrate the use of optiongroups (identical to enumerations). | |||
* In an extension's INX file, you can specify <code><effects-menu hidden="yes"/></code> to hide that extension from the Effects menu. However, such a "hidden" extension can still be assigned a keyboard shortcut (by using its <code>id</code> as an "action" in your <code>~/.inkscape/keys/default.xml</code>). | |||
* In an extension's INX file, you can add <code>needs-document="no"</code> attribute to the <code><effect></code> element. This indicates that the extension does not process the current SVG document, and Inkscape will not bother saving and restoring the document from a temporary file which allows this extension to run faster and smoother. (This is used for the new open-in-default-browser Help menu commands which are technically implemented as extensions.) | |||
= Export formats = | |||
== AI import/export == | |||
* We only support AI import and export for Adobe Illustrator 8.0 and older. This has been clarified in the Open and Save As lists. | |||
== PDF export == | |||
Inkscape's PDF exporter has been improved: | |||
* '''New features:''' bitmap images can be embedded; PDF files can be exported from command line using the <code>--export-pdf</code> parameter. | |||
* '''Changed behavior:''' the pointless text to path question is gone. | |||
* '''Fixed bugs:''' save failure is now detected, miter limits are now >= 1, PDFs with transparent gradient are now embeddable, eccentric elliptic gradients fixed, dash style inheritance fixed, transparency inheritance fixed. | |||
== PS/EPS export == | |||
There's a new option to <b>embed the fonts</b> used in the document in the PS or EPS exported file. As of now, this works for <b>Type 1 fonts only</b>, not TrueType. The option is available when performing the export from the GUI as well as from the command line via the <code>--export-embed-fonts</code> option. | |||
== EMF export == | |||
Inkscape has a limited support for exporting <b>EMF</b> (Enhanced Meta File) format. This works <b>only on Windows</b>, and only exports strokes and fills with constant colors. No text, no images, no gradients, no transparency. | |||
= SVG output = | |||
For specialized uses, several aspects of Inkscape's SVG output can now be customized via editing the preferences.xml file (there's no UI for these options). A <group id="<b>svgoutput</b>"> inside <group id="options"> can have the following attributes: | |||
* <b>usenamedcolors</b> (default is 0). If nonzero, Inkscape uses symbolic color names (such as "white" or "lime") and three-digit color designations (such as $dfe) where appropriate; otherwise, it always uses six-digit colors (such as $d0f0e0). Note that in 0.44, the default was to use named colors, which created problems for some extension effects. | |||
* <b>numericprecision</b> (default is 8). This is the number of significant digits written for each number into SVG. You can lower this number to get slightly more compact SVG at the expense of precision. | |||
* <b>minimumexponent</b> (default is -8). In transform= attributes, any number whose absolute value is less than 10 to the power of minimumexponent (i.e. less than 10<sup>-8</sup> by default) is written as 0. | |||
* <b>indent</b> (default is 2) controls the number of spaces that each level of nesting in SVG is shifted. Set this to 0 to disable indentation. | |||
* <b>inlineattrs</b> (default is 0). If nonzero, attributes are placed on the same line as their tags; otherwise they are separated by newlines. | |||
= | = Bitmap tracing = | ||
* | * A '''new color quantization algorithm''' for multiscan traces works faster (especially for large numbers of colors) and gives more adequate results with less colors used. This improves tracing results both for full-color photographs and for limited-color drawings. | ||
* The Trace Bitmap dialog now provides access to three more tracing parameters: | |||
:* '''Suppress speckles''': If set, spots or speckles larger than the given size (in pixels) are suppressed in the trace. | |||
* | :* '''Smooth corners''': This parameter controls how much smoothing is applied to corners in the traced path. | ||
:* '''Optimize paths''': If set, trace paths are optimized by joining adjacent Bezier segments with the given tolerance. | |||
* | * All controls in the Trace Bitmap dialog are reorganized to be easier to find. The dialog is redesigned to use two main tabs: '''Mode''' (where you select the tracing mode, such as brightness cutoff or color multiscan) and '''Options''' (where you set various tracing options, such as corner smoothing). The preview is placed horizontally to the right of the tabs. Most labels and tooltips are rewritten for clarity. The trace preview image is made twice larger. | ||
= Even more improvements = | |||
* | * The '''opacity''' of objects is now displayed as percentage, '''from 0 to 100''', both in the Fill & Stroke dialog (with one fractional digit) and in the statusbar style indicator (with no fractional digits), instead of from 0 to 1.0 as before. This makes opacity values easier to read, type, and say. | ||
* | * A '''Save a copy''' command has been added to the file menu, similar to the 'Save a copy' functionality of e.g. Adobe Illustrator. With this command, you can save your document under a new filename, but Inkscape will then "forget" it has done this: later saves will be to the old filename. The default shortcut assigned to this function is '''Shift+Ctrl+Alt+S'''. | ||
* | * <b>Text and flowed text objects</b> behave more consistently. Now you can put a flowed text on path or (re)flow it into a shape just as you would do with a regular (unflowed) text. Previously, the need to convert a flowed text to text before these operations was a stumble for many users. | ||
* Simplify Path now | * Several commands were added to the '''Help menu''', providing the long-missing access to basic information about Inkscape and SVG right from the program: [http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php Inkscape manual], [http://inkscape.org/doc/inkscape-man.html Command line options], [http://wiki.inkscape.org/wiki/index.php/FAQ FAQ], Release notes, [http://inkscape.org/report_bugs.php Bug report page], and the [http://www.w3.org/TR/SVG11/ SVG 1.1 specification]. All these commands open the corresponding web pages in the user's default web browser. | ||
* Exported PNG images have the correct '''resolution''' set in the header. | |||
* The Path -> '''Union''' (Ctrl++) operation now functions when only a '''single object''' is selected. Use this to '''remove self-intersections''' in path objects. | |||
* We removed the "hacked" '''filename entry field''' that we had added to the Open and Save dialogs because starting from version 2.10, GTK+ has finally restored this field in their '''standard file dialog'''. The standard field at the top of the dialog supports type-ahead find and performs the default dialog action (open or save) by pressing Enter, which means you can now do a quick '''Ctrl+O, Ctrl+V, Enter''' sequence to open the file whose path is in your clipboard (this closes a long-standing usability bug). Those who use older versions of GTK are advised either to upgrade to 2.10 or use Ctrl+L to open a pop-up filename box. (Our Windows builds are shipped with GTK+ 2.10.) | |||
* The '''Create Bitmap''' function (Alt+B in the default keymap) is made more useful. Unless you have specific resolution or minimum size set for this command in preferences.xml (<code><group id="createbitmap"/></code>), it will take the '''resolution hint''' from the object whose bitmap copy you are creating (in other words, it will use the resolution that you specified for that object when exporting it via the Export Bitmap dialog), or the default '''90 dpi''' if that object was not yet exported. Also, a 90 dpi bitmap (with its pixels exactly 1 px in size) will be '''snapped''' to the pixel grid. This makes it easy to use Create Bitmap for quick '''rasterization preview''' of an object or document. (Note: if you have used a previous version of Inkscape, your preferences.xml may contain <code>minsize="250"</code>; delete this for objects' resolution hints to work.) | |||
* Using extended input (i.e. tablet pressure and tilt) can now be disabled via Preferences (Misc tab). This is intended to be a last-resort option for those platform/hardware combinations that are not properly supported by GTK. With extended input disabled, you can still use your tablet as a mouse. | |||
* Simplify Path now has two modes when working with a group of paths: the default mode, which treats all of the paths as one large object to simplify, or the new mode, which acts the same as using Simplify on each path in a group separately. In preferences.xml, set '''options.simplifyindividualpaths''' to 1 to get the new mode. | |||
* For long Simplify operations (more than 20 paths at a time), Inkscape provides user feedback via the status bar as to how many paths have been simplified. This change also prevents Inkscape from appearing to have locked up during the operation. | * For long Simplify operations (more than 20 paths at a time), Inkscape provides user feedback via the status bar as to how many paths have been simplified. This change also prevents Inkscape from appearing to have locked up during the operation. | ||
= | * New '''templates''' added for '''video formats''' (PAL, NTSC and HDTV 1080) as well as DVD cover templates that were not installed in the previous version. This will help video and DVD authoring with Inkscape. The business card 85×54 template is now installed as well. | ||
* "Other" license type was added to the metadata/license dialog so that people know that they are entering a URI to an "other" license. | |||
= Examples = | |||
* With all the recent additions - clipping, masking, and especially blur - Inkscape is now able to produce extremely photorealistic art. In the share/examples folder in Inkscape distribution, you will find two brand new, stunningly realistic images of shiny cars: <b>car.svgz</b> by Konstantin Rotkevich and <b>gallardo.svgz</b> by Michael Grosberg. | |||
* Inkscape 0.45 does not yet have gradient meshes. But with the addition of Gaussian Blur, this feature suddenly got within reach. A new example file, <b>gradient-mesh-experimental.svgz</b>, explains the approach Inkscape will likely take to implement this feature in a fully SVG-compatible way. | |||
* Although Inkscape does not support animation yet, you can add any animation scripts and attributes to your SVG file manually in a text editor - and the file will still be editable in Inkscape. Tavmjong Bah used this technique to create <b>animated-clock.svg</b> which, when loaded in an SVG viewer supporting animation (such as Firefox, Opera, or Batik), demonstrates the intricate moving clockwork of a watch - and shows real time to boot! If loaded in Inkscape, the image is static, but instead you can freely edit any of the objects. | |||
= Translations, tutorials, templates = | |||
* Remarkable improvements are in the '''Danish''', '''Finnish''', '''Nepalese''' and the '''Vietnamese''' translations of the user interface. They all jumped from 0 to over 90 percent in a very short timespan. | |||
* All people which are familiar with '''pig latin''' are now able to use Inkscape's user interface in that language. Isthay isway oughtbray otay usway ybay away ewnay anslatortray. | |||
* Updated '''British English''', '''Catalan''', '''Czech''', '''Bulgarian''', '''French''', '''Danish''', '''Finnish''', '''German''', '''Brazilian Portuguese''' and '''Thai''', '''Vietnamese''' and '''Dzongkha''' translations. | |||
* A new Esperanto translation added including default document template. | |||
* Default Lithuanian template was not installed before, which is now fixed. | |||
* New tutorial "Easter Eggs" by Steve Karg. | |||
* Added Catalan default template and elements tutorial. | |||
* Russian header and footer templates for tutorials are added. | |||
* Several tutorial translations were updated, namely '''Catalan''', '''Brazilian Portuguese''', '''Russian''', '''German''', '''Danish''' and '''French'''. | |||
* There are also new Russian and Japanese translations of Windows installer strings. | |||
= Dependency changes = | |||
* We have changed the '''GTK+''' requirement for compilation to version 2.8. However, it is highly recommended to use at least the version '''2.10.7''' because previous versions contain at least one crash bug which may cause Inkscape to crash after typing in a value into a spinbutton. | |||
= Notable bugfixes = | |||
* When deleting a node, neighboring smooth nodes are converted to cusp. | |||
* Releasing the mouse button while dragging nodes using a tablet will now always release the nodes. Before this, a race condition could occur where dragging could continue after the mouse button was released. | |||
* An object's mask and clipping path are now preserved after Simplify, Object/Stroke to path, or boolean operations. | |||
* Ungrouping a group containing clipped/masked objects might sometime break the clip/mask (move it away); this is fixed. | |||
* Transforming an object and its clone no longer behaves unexpectedly when they are both within a transformed group. | |||
* User-supplied templates in ~/.inkscape/templates can now be SVGZ files in addition to SVG. | |||
* Previously, Inkscape didn't check if there's enough free memory for its pixel buffers and could crash without warning due to insufficient memory e.g. upon zooming in. This problem became much worse after implementing Gaussian blur, because rendering blurred objects at high zooms may require a pixel buffer much bigger than the visible canvas. Now this situation is handled more gracefully: if a display operation requires more memory than available, or more than 100Mb (which corresponds to a 5000x5000 pixel buffer), it is skipped. This may result in blurred objects "disappearing" at high zooms. This is purely a display issue, however, and it never corrupts data; just zoom out (or reduce blur radius) and the disappeared object will show up OK. | |||
* When resizing objects, scaling numbers in the statusbar are no longer overwritten by other text when pressing the modifier keys (Alt, Shift, Ctrl). | |||
* | * To work around problems some users had with pressure-sensitive tablets ([http://sourceforge.net/tracker/index.php?func=detail&aid=1281512&group_id=93438&atid=604306 bug 1281512]), the pressure sensitivity can be disabled from the Misc tab of Inkscape Preferences dialog. After that, the tablet can still be used as a regular mouse. | ||
= | * The layer widget in the statusbar used to lose its current layer after an effect run; this is fixed. | ||
* When using different display resolutions or a dual screen setup, dialogs could be displayed off-screen; this is fixed: now Inkscape checks whether the saved position of the dialog is offscreen, if so it will move the dialog to the center of the screen. Note that this not solve all problems. If the dialog is still not visible, go to the [http://sourceforge.net/tracker/?func=detail&atid=604306&aid=1250236&group_id=93438 bug 1250236] where a procedure is given to make the dialog visible (by editing preferences.xml). | |||
* Grid and guidelines no longer vanish when changing their color. | |||
* | * Group transformation is now correctly re-applied when ungrouping and then undoing the ungroup operation. | ||
* Text dialog no longer discards the style of the selected text. | |||
* Inkscape no longer crashes when you try to unflow an empty flowed text. | |||
* | * Thanks to patches submitted by users of our community, Inkscape can now be built on SGI IRIX 6.5.28, gcc 3.4.0 systems and on Tru64 systems. | ||
= Known problems = | = Known problems = | ||
==== Problem with "Dialogs on Top" on Windows ==== | |||
* Although the "Dialogs on Top" option is now available on Windows (File > Inkscape Preferences > Windows), it does not work exactly as it should (yet!). When the document window is minimized, the dialogs remain visible, i.e. are not minimized together with the document window. Because of this, it is not possible to get the document window back by clicking its taskbar button. A workaround to this problem is to '''right-click the Inkscape taskbar button and select "Restore".''' We expect that future releases of GTK will solve this problem. | |||
==== Spinbuttons may crash if you have GTK+ older than 2.10.7 ==== | |||
* You may experience crashes after typing in a value into a spinbutton if you have a version of GTK+ 2.10.6 or older. Upgrade your GTK+ to fix this. (This does not affect the Windows package as it comes with GTK+ 2.10.9.) | |||
==== Numerical Python required for Perspective effect ==== | |||
* This effect will not work until you install a python module called '''numpy''' (Numerical Python). It can be downloaded at [http://numpy.scipy.org/ numpy.scipy.org]. The Windows package already contains this module. | |||
==== Do not use a clone of an object as its clipping path/mask ==== | |||
* In this version, you cannot use an object's clone as its clipping path or mask. Either unlink the clone first, or clip one clone of a source object (not the source itself) by another clone of the same. Properly fixing this bug requires some deep changes in the code and therefore was postponed until after 0.45 so as not to delay the release. | |||
==== Non-Unicode symbol fonts on Windows don't work ==== | |||
* On Windows, symbol fonts without a Unicode map do not work. This is a limitation of the Pango library that we use. | |||
==== Problems with some Debian libgc-6.7 packages ==== | ==== Problems with some Debian libgc-6.7 packages ==== | ||
Line 78: | Line 432: | ||
* A similar crash happens if the <b>KDE Baghira</b> theme or the package <b>gtk_qt_engine</b> are installed. If you experience Inkscape crashes on KDE, please try to install a different theme from Baghira, or uninstall the gtk_qt_engine package from your system. Both problems also affect older versions of Inkscape. | * A similar crash happens if the <b>KDE Baghira</b> theme or the package <b>gtk_qt_engine</b> are installed. If you experience Inkscape crashes on KDE, please try to install a different theme from Baghira, or uninstall the gtk_qt_engine package from your system. Both problems also affect older versions of Inkscape. | ||
== | == Other releases == | ||
{{:Release notes}} |
Latest revision as of 21:12, 2 May 2021
Inkscape 0.45.1 changes with respect to 0.45
- Patch [ 1667939 ]: fix crash when tile-tracing with too small clones
- Patch [ 1666532 ]: Broken link in inkview man page
- Patch [ 1665447 ]: fix for the blur quantization bug 1617082
- Patch [ 1664849 ]: fix for 1662589: increase blur margins
- Patch [ 1664004 ]: embedimage.py with fixed search order
- Patch [ 1662649 ]: markers.svg with reversed order
- Crudely improve check-markup for { markup, fix translations with bugs in that area (dz and zh_TW).
- Patch [ 1659404 ]: Set locale directory from environment variable
- Patch [ 1657072 ]: fix for bug 1654495
- Patch [ 1654636 ]: defocus dropper checkboxes
- Adding japanese.nsh and russian.nsh into files that should go into the release tarball
- Correct russian translation
- Patch [ 1651797 ]: fix for attributes when saving/save-a-copy
- Patch [ 1651752 ]: fix dropper tool
- Pattern along path extension fixed on Windows
- Include libtiff3.dll in the Windows distribution, fixing crash when opening TIFF files
- Patch [ 1673067 ]: fix blur export on flowtext
- Patch [ 1678075 ]: fix FontInstance.cpp compile issue
- Patch [ 1673502 ]: fix broken Envelope (Summers Night) effect
- Patch [ 1680182 ]: fix pattern inversion on bool op (bug 1659445)
- Patch [ 1681754 ]: fix crash when editing text with multiple tspans
- Patch [ 1682425 ]: fix bug 1679477 (crash exporting gradients to ODG)
- Khmer translation now installs correctly
- Updated Slovak translation
- Updated Bulgarian translation
- Updated Catalan translation
- Updated Czech translation
- Security: fixed format string overflows in dialogs (CVE-2007-1463) and whiteboard Jabber protocol (CVE-2007-1464).
Inkscape 0.45: overview
This release brings the exciting new features developed by the Google Summer of Code 2006 participants, as well as tons of other improvements across the board. Here are the highlights:
- Gaussian blur is the first SVG filter supported by Inkscape. You can blur any object to any extent - yet it remains vector and fully editable. This gives a huge boost to Inkscape as a creative art tool.
- Display speed and interactivity: not only does Inkscape render faster, but it can now respond to user input before it finished redrawing the screen, which greatly improves the responsiveness (perceived speed or interactivity) of the program.
- History dialog makes it easy to to review your editing session and jump to any step of it, undoing and redoing multiple actions with one click.
- Several important tool features are added, notably the new selection mode in Node tool and the adjustable rounded caps in Calligraphic pen.
- Bitmap tracing works better for multi-color traces, sports a redesigned dialog and several new options.
- Many new extension effects are added, including Color effects and Pattern along path.
- The Outline mode has got many fixes and improvements, including a keyboard shortcut.
- Several new commands in Help menu open various Inkscape-related pages in your default browser, making Inkscape reference information more accessible as you work.
- Dozens of smaller features are added throughout the program, and hundreds of bugs are fixed.
SVG filters: Gaussian blur
Thanks to Google's Summer of Code program, Inkscape now has basic support for SVG filters. The only filter enabled so far is Gaussian blur.
With it, you can softly and naturally blur any Inkscape objects: paths, shapes, groups, text, images. Clones inherit blurring from their original, but they can also be blurred independently from the original (you can create blurred clones with Tile Clones, too). Both the fill and stroke of an object are blurred together, creating semitransparent margins that smoothly blend into the background.
Gaussian blur enables a wide range of photorealistic effects: arbitrarily shaped shades and lights, depth of field, drop shadows, glows, etc. Also, blurred objects can be used as masks for other objects to achieve the "feathered mask" effect.
- To blur selected objects, open the Fill and Stroke dialog (Ctrl+Shift+F) and use the Blur slider. The blur value is a percentage, with 100% corresponding to a blurring radius (standard deviation of Gaussian function) of 1/8 of the object's bounding box' perimeter (that is, for a square, a blur of 100% will have the radius equal to half a side, which turns any shape into an amorphous cloud).
- The Tile Clones dialog also supports blurring. On the Blur & opacity tab, you can set the blur percentage per row or per column of your tiling, as well as randomize blurring and make it alternate (all the same options as for Opacity).
- The quality of on-screen blur display is controlled by the Blur quality option on the new Filters tab of Inkscape Preferences (Ctrl+Shift+P). The available options range from best quality/slowest display to worst quality/fastest display, the default being in the middle of the range. Any setting except the "best quality" may introduce some rendering artifacts, especially when blurring thin strokes; on the other hand, the "best quality" setting may make Inkscape extremely slow at high zooms. These settings only affect the screen display of blurred objects; bitmap export always uses the best quality (and may therefore become quite slow for images with a lot of blur).
Here are a few tips on using blur:
- Masks and clipping are applied after blur. That is, if you clip an object and then blur it (or blur it first and then clip - it makes no difference), the clipped edges will remain crisp. Often, this is what you want. If, however, you want to blur the clipped/masked edges too (possibly with a different radius), you can use grouping: group the clipped object with some other object (which you can then delete from the group) and blur the group.
- A simple drop shadow is now very easy to do: just copy the object, paint the copy black, blur it, shift away a bit and lower it to the bottom. However, such a shadow does not update when you edit the foreground object. If your object is already black (or, more generally, if you want the shadow to be the same color as the object), you can clone instead of copy to make the shadow auto-updating. But what if your foreground object is not black but you need an auto-updating black shadow? Here's a recipe: unset the object's fill (it becomes black); create two clones of it; put one clone on top and paint any color you want; put the other clone at bottom, blur it and shift sideways. Now you can edit the unset-fill original (use Alt+click to select it) and everything will update.
- If an object has a fill that you don't want to blur (e.g. pattern, or if it's a bitmap), but you just want to feather the edges, use a blurred transparency mask. For this, copy the object; paint it white; blur it as needed; scale the blurred copy down so its blur margins are entirely within the original object; select both the original and the blurred mask; do Object > Mask > Set.
- Transforming a blurred object transforms its blur, too. This applies to a non-uniform scaling as well, so by squeezing a blurred object you make its blur squeezed as well. So, the easiest way to blur a path horizontally more than vertically is this: stretch it upwards without blur, then apply blur and squeeze it back into the original shape. (This only works if the stretched path does not already have a Transform attribute.)
- You can combine blurring with gradients. For example, an ellipse with elliptic opacity gradient will look much softer and more natural when blurred. An object with a horizontal linear opacity gradient, when blurred, will look as if it's more blurred on its transparent side than on its opaque side.
- A clone of a blurred object inherits the blur of the original. Therefore, such a clone can be blurred more, but you can't "unblur" it to make the clone sharper than its original (unless, of course, you unlink it). The Fill and Stroke dialog shows you the amount of the blur applied to this particular object; however, if the object is a clone of an already blurred original, the dialog does not reflect that.
- Note that Firefox 2.0 does not support SVG filters, so your files will be displayed in Firefox 2.0 without blur. However, filter support has been added in the current development version and will be included in Firefox 3.0. The Opera web browser, as well as librsvg (used by Wikipedia) and Batik, support filters correctly in their current versions.
Undo history
- Inkscape now features a History Dialog accessible via Ctrl+Shift+H or Edit > Undo History. All changes made to the document since it was opened are recorded here.
- In the dialog, changes are listed from the oldest (top) to the newest (bottom).
- The type of each change is indicated by an icon and a short description.
- For readability, consecutive changes of the same type are placed in a collapsible branch showing a triangle marker and the number of the hidden actions in the branch.
- By clicking on an event in the list, you can easily move through the undo history, i.e. undo or redo any number of actions with one click.
- The Undo and Redo commands in the Edit menu display the descriptions of the commands to be undone and redone, correspondingly. (These are the same descriptions that you see in the History dialog.)
Rendering improvements
- Interruptible display: Previously, Inkscape could not do anything until it finishes the current screen redraw. Now the redraw is made interruptible, so that Inkscape responds to mouse and keyboard input and can abort the current redraw and start over if you do some screen-changing operation. As a result, Inkscape now feels much snappier and more interactive. This interruptibility is fine-tuned for some continuous-drag operations (such as node dragging) so that a balance is achieved between responsiveness and completeness of display.
- Screen render is faster by 2-3% overall:
- Complex drawings with transparency are faster by up to 5%.
- Radial gradients are rendered faster by at least 10%.
- Rendering (compositing) quality has been improved. This is most visible with (partially) transparent gradients: banding is a lot less pronounced now. Speed has also been improved in some cases.
- Display is more responsive when working at high zoom levels when using a tablet.
Tools
Node tool
- You can grow or shrink node selection by hovering the mouse pointer over a node and using mousewheel (up = grow, down = shrink) or the keys PageUp (grow) and PageDown (shrink). Growing adds the closest unselected node to the selection; shrinking deselects the farthest selected node. There are two modes that differ by how the closest/farthest nodes are chosen:
- Spatial selection (mousewheel, PageUp/PageDown): distances to nodes are measured directly, regardless of which subpath a node belongs to.
- Linear selection (Ctrl+mousewheel, Ctrl+PageUp/Ctrl+PageDown): node distances are measured along the path, and only the nodes belonging to the same subpath as the hovered node are considered (i.e. other subpaths are never selected).
- This technique is convenient for quickly selecting an area in a complex path starting from a center - for example, for node sculpting.
Dropper
- Instead of the confusing toggle button, now the Controls bar for the Dropper tool has two checkboxes, Pick alpha and Set alpha, which work as follows. Suppose you have an object selected and, using Dropper, click on an object which has red (#FF0000) fill and 0.5 opacity (half-transparent).
- If the "Pick alpha" checkbox is off, the selected object will get the fill color #800000 (i.e. faded-out red) and fill opacity will be at 1.0 (opaque).
- If the "Pick alpha" checkbox is on but "Set alpha" is off, the selected object will get the fill color #FF0000 (red) and fill opacity will be at 1.0.
- If both "Pick alpha" and "Set alpha" are on, the selected object will get the fill color #FF0000 (red) and fill opacity will be at 0.5 (half-transparent).
- If you Shift+click instead of click, the same changes will be made to stroke color and stroke opacity, correspondingly. Note that in no situation can Dropper change the master opacity of the selected object(s) (only the fill/stroke opacity), although it can pick it just as it does any other kind of opacity.
Calligraphy
- A new numeric parameter, Caps, controls the amount of protruding at the ends of calligraphic strokes. This parameter can range from 0 (flat caps, default behavior in previous versions) through 1 (approximately half-circle caps) and up to 5 (long elliptic caps). Rounded caps much improve the look of low-fixation strokes, simulating a rounded pen.
- The "Drag" parameter has been renamed to Wiggle with a value inversion (i.e. low drag corresponds to high wiggle, and vice versa). Increase this parameter (default is 0) to make the pen waver and wiggle in curly patterns.
- As a first step towards a redesign of the tools' controls, the Controls bar of the Calligraphy pen has been upgraded. Now it no longer prevents the Inkscape window from resizing narrower than the bar. The items on the far right end of the bar which didn't fit in a narrow window are still accessible through an expansion menu which allows you to toggle switches, select commands, and set values of numeric fields. Also, each editable numeric value field has a new right-click menu with some common values which often allows you to set a desired value much faster than by scrolling the control or typing the value into it.
- With low or zero Fixation parameter, some users of tablet pens experienced "blobs" (brief reversals of a stroke's right/left edges, causing "holes" and "bubbles" in a calligraphic stroke), especially often at the start of a stroke. Hopefully this problem is now fixed without reducing the responsiveness of the tool.
Outline mode
- A new menu command (View > Display Mode > Toggle) and a new keyboard shortcut (Ctrl+<keypad 5>) switch the display mode from Normal to Outline and back.
- The window title displays "(outline)" next to the file name when that editing window is in Outline mode.
- An object with mask and/or clipping path, when viewed in Outline mode, now displays both the object itself and its clipping path and mask as objects, using different outline colors. By default, clippaths use green outlines, and masks use blue.
- Images in Outline mode are displayed as red (by default) frames with two diagonals.
- An object with no fill and no stroke, invisible and not selectable by mouse clicking in normal mode, can now be picked by a mouse click in the Outline mode using its visible outline.
- The bug whereby stroked shapes didn't change stroke width when switching to Outline mode or back is fixed.
- All outline colors are changeable by editing the "wireframecolors" group inside "options" in the preferences file (~/.inkscape/preferences.xml). The "onlight" and "ondark" attributes set the colors of the regular object outlines on light and dark backgrounds (default black and white correspondingly); the "images", "clips", and "masks" attributes set the colors of images, clipping paths, and masks (defaults are red, green, and blue correspondingly). Each attribute is a decimal integer corresponding to the hex RRGGBBAA of the color.
- To cater for specialized uses, such as preparing input for personal media cutters, Inkscape now has an option to start in the Outline mode upon launch. To enable this, add the following line to your preferences.xml file:
- <group id="startmode" outline="1"/>
- placing it after the <group id="options"> opening tag.
Keyboard profiles
The previous release allowed sets of keybindings (keymaps) to be created for Inkscape in the style of other applications. Two more keymaps have been added:
- Adobe Illustrator
- Macromedia Freehand
Of course not every feature in these other programs has a direct match to features in Inkscape; so, if you can, please help us out by reporting any problems you may have or improvements you would like to request.
Additionally, a keymap that focuses on tablet-based illustration and drawing work has been added:
- right-handed-illustration.xml
This keymap places all commonly-used commands under the left hand, so that the user's hands rarely leave the keyboard or the tablet/stylus.
(To enable a profile, copy it into default.xml
in the same directory, overwriting the old file. To restore the default Inkscape set, copy inkscape.xml
into default.xml
.)
More of Inkscape's keys are implemented as actions and are therefore available for remapping via keyboard profiles. New actions include EditSelectNext and EditSelectPrev for selecting next/previous object or node (by default, they are bound to Tab/Shift+Tab; as a result of becoming global actions, these keys now work in all tools and not only in Selector and Node tool as before).
Extension effects
Inkscape's extension effects, written in Python using the inkex utility class, are currently a major growth point of the project. They allow new developers to create functionality very quickly, without having to learn Inkscape's huge C/C++ codebase. However, eventually we plan to move many of these effects into the core of Inkscape, which will make them much faster and more interactive. From this viewpoint, effects can be considered a quick way to prototype and test the algorithms and UI controls of the future Inkscape features. However, this does not prevent effects from being genuinely useful in everyday work, and in this version we have several excellent additions.
New effects
- Pattern along path: A new powerful extension in the "Generate from path" submenu allows you to bend, repeat and/or stretch a pattern object (which can be a path or a group) along a "skeleton" path. This makes it easy to create a variety of patterned and shaped strokes. (This obsoletes the old "Kochify" extension which is removed.)
- Effect's parameters include:
- Copies of the pattern selects one of the four modes: Single stretched: one copy of the pattern is placed on the skeleton path and stretched/squeezed to match its length; Repeated stretched: as many copies as would fit are placed along the skeleton path and stretched to fit exactly; Single and Repeated: same but without stretching.
- Deformation type can be one of: Snake bends the pattern flatly in the plane of the drawing, the width not depending on direction; Ribbon bends it as a vertical ribbon or like a calligraphic stroke with maximum fixation, so that width depends on direction (minimum for vertical parts of the stroke, maximum for horizontal).
- Several parameters allow you to adjust spacing between the copies of the pattern (for Multiple modes) and their offset in two directions (along the skeleton path and perpendicular to it).
- Normally the effect assumes that the pattern object is horizontal and bends its horizontal axis (at mid-height) along the skeleton path. There's a checkbox that allows you to use a vertical pattern instead.
- Some examples of using this effect are shown on a screenshot at [1].
- Color effects: A new group of extensions in the Color submenu of the Effects menu allows you to adjust all colors of a selection at once. These commands affect both fill and stroke colors, including gradients (but not bitmaps). The commands include:
- a full set of HSL adjustments (increasing/decreasing hue, saturation, or lightness by 5%),
- Brighter and Darker (adjust brightness up or down by 10%),
- Desaturate,
- Grayscale,
- Negative,
- commands for removing or swapping the Red, Green, Blue channels,
- a Custom command where you can set your own formulas for modifying the color channels.
- Some examples of using this effect are shown on a screenshot at [2].
- Note: undoing color changes on gradients exposes a bug where an object seems to "disappear"; this is only a display issue (caused by the order in which gradients and their users are restored on undo) not causing any loss of information. Also, on large documents and large selections with gradients, Python's XPath code may get quite slow. Despite these shortcomings, we decided to add this extension, because it's genuinely useful functionality which was so far missing in Inkscape.
- Recent fixes in the processing of SVG <defs /> have made it possible to implement the often requested Color Markers to Match Stroke effect. It is no longer necessary to hand-edit XML to recolor arrowheads; just change the stroke color of your path and call this effect to recolor its markers to match.
- Lorem ipsum (in "Render" submenu) is a new extension that creates the traditional Latin-like random text for design mock-ups. The number of paragraphs, the number of sentences per paragraph and the possible fluctuation of the number of sentences (for uneven paragraphs) can be adjusted. If no flowed text element is selected, a new one in a new layer is created, matching the size of the canvas.
- Fractalize (in "Modify Path" submenu) replaces each segment of the selected path by a crooked line, subdivided to the given depth, with randomly displaced nodes.
- g2png: The new group-to-PNG Python extension (g2png) is an easy way to export any group or layer to individual PNG files. It was first created for use in the Inkscape User Manual (also available in SVN in the user_manual module) but is also interesting for many other uses. If e.g. you have to draw a set of icons, you can draw them in the same document, thus making copying, duplicating, cloning etc. easier. Then just create a group for each icon, and with the extension, each group ends up in its own PNG file.
Improved effects
- The Function Plotter has been extended, providing greater flexibility in x- and y-range definition.
- The Measure Path extension is improved with several new parameters added (units, scale, precision, distance from path).
- The Extract One Image extension is fixed to automatically append filename extension to the created bitmap file.
- The "Blur Edge" extension is renamed into Inset/Outset Halo to avoid confusion with the real Gaussian blur that we now support, as well as to better describe what this extension actually does: From the selected path, it creates a group of inset and outset paths that form a stepped "halo" around the object.
Infrastructure
- 3 new parameter types have been added to the extension effect UI: tabs, enumerations and optiongroups (radio buttons). Examples are available of how to use these parameters in INX files: the new Function Plotter uses tabs; enumerations are used by the Pattern along path extension; and a small developer example is given to illustrate the use of optiongroups (identical to enumerations).
- In an extension's INX file, you can specify
<effects-menu hidden="yes"/>
to hide that extension from the Effects menu. However, such a "hidden" extension can still be assigned a keyboard shortcut (by using itsid
as an "action" in your~/.inkscape/keys/default.xml
).
- In an extension's INX file, you can add
needs-document="no"
attribute to the<effect>
element. This indicates that the extension does not process the current SVG document, and Inkscape will not bother saving and restoring the document from a temporary file which allows this extension to run faster and smoother. (This is used for the new open-in-default-browser Help menu commands which are technically implemented as extensions.)
Export formats
AI import/export
- We only support AI import and export for Adobe Illustrator 8.0 and older. This has been clarified in the Open and Save As lists.
PDF export
Inkscape's PDF exporter has been improved:
- New features: bitmap images can be embedded; PDF files can be exported from command line using the
--export-pdf
parameter.
- Changed behavior: the pointless text to path question is gone.
- Fixed bugs: save failure is now detected, miter limits are now >= 1, PDFs with transparent gradient are now embeddable, eccentric elliptic gradients fixed, dash style inheritance fixed, transparency inheritance fixed.
PS/EPS export
There's a new option to embed the fonts used in the document in the PS or EPS exported file. As of now, this works for Type 1 fonts only, not TrueType. The option is available when performing the export from the GUI as well as from the command line via the --export-embed-fonts
option.
EMF export
Inkscape has a limited support for exporting EMF (Enhanced Meta File) format. This works only on Windows, and only exports strokes and fills with constant colors. No text, no images, no gradients, no transparency.
SVG output
For specialized uses, several aspects of Inkscape's SVG output can now be customized via editing the preferences.xml file (there's no UI for these options). A <group id="svgoutput"> inside <group id="options"> can have the following attributes:
- usenamedcolors (default is 0). If nonzero, Inkscape uses symbolic color names (such as "white" or "lime") and three-digit color designations (such as $dfe) where appropriate; otherwise, it always uses six-digit colors (such as $d0f0e0). Note that in 0.44, the default was to use named colors, which created problems for some extension effects.
- numericprecision (default is 8). This is the number of significant digits written for each number into SVG. You can lower this number to get slightly more compact SVG at the expense of precision.
- minimumexponent (default is -8). In transform= attributes, any number whose absolute value is less than 10 to the power of minimumexponent (i.e. less than 10-8 by default) is written as 0.
- indent (default is 2) controls the number of spaces that each level of nesting in SVG is shifted. Set this to 0 to disable indentation.
- inlineattrs (default is 0). If nonzero, attributes are placed on the same line as their tags; otherwise they are separated by newlines.
Bitmap tracing
- A new color quantization algorithm for multiscan traces works faster (especially for large numbers of colors) and gives more adequate results with less colors used. This improves tracing results both for full-color photographs and for limited-color drawings.
- The Trace Bitmap dialog now provides access to three more tracing parameters:
- Suppress speckles: If set, spots or speckles larger than the given size (in pixels) are suppressed in the trace.
- Smooth corners: This parameter controls how much smoothing is applied to corners in the traced path.
- Optimize paths: If set, trace paths are optimized by joining adjacent Bezier segments with the given tolerance.
- All controls in the Trace Bitmap dialog are reorganized to be easier to find. The dialog is redesigned to use two main tabs: Mode (where you select the tracing mode, such as brightness cutoff or color multiscan) and Options (where you set various tracing options, such as corner smoothing). The preview is placed horizontally to the right of the tabs. Most labels and tooltips are rewritten for clarity. The trace preview image is made twice larger.
Even more improvements
- The opacity of objects is now displayed as percentage, from 0 to 100, both in the Fill & Stroke dialog (with one fractional digit) and in the statusbar style indicator (with no fractional digits), instead of from 0 to 1.0 as before. This makes opacity values easier to read, type, and say.
- A Save a copy command has been added to the file menu, similar to the 'Save a copy' functionality of e.g. Adobe Illustrator. With this command, you can save your document under a new filename, but Inkscape will then "forget" it has done this: later saves will be to the old filename. The default shortcut assigned to this function is Shift+Ctrl+Alt+S.
- Text and flowed text objects behave more consistently. Now you can put a flowed text on path or (re)flow it into a shape just as you would do with a regular (unflowed) text. Previously, the need to convert a flowed text to text before these operations was a stumble for many users.
- Several commands were added to the Help menu, providing the long-missing access to basic information about Inkscape and SVG right from the program: Inkscape manual, Command line options, FAQ, Release notes, Bug report page, and the SVG 1.1 specification. All these commands open the corresponding web pages in the user's default web browser.
- Exported PNG images have the correct resolution set in the header.
- The Path -> Union (Ctrl++) operation now functions when only a single object is selected. Use this to remove self-intersections in path objects.
- We removed the "hacked" filename entry field that we had added to the Open and Save dialogs because starting from version 2.10, GTK+ has finally restored this field in their standard file dialog. The standard field at the top of the dialog supports type-ahead find and performs the default dialog action (open or save) by pressing Enter, which means you can now do a quick Ctrl+O, Ctrl+V, Enter sequence to open the file whose path is in your clipboard (this closes a long-standing usability bug). Those who use older versions of GTK are advised either to upgrade to 2.10 or use Ctrl+L to open a pop-up filename box. (Our Windows builds are shipped with GTK+ 2.10.)
- The Create Bitmap function (Alt+B in the default keymap) is made more useful. Unless you have specific resolution or minimum size set for this command in preferences.xml (
<group id="createbitmap"/>
), it will take the resolution hint from the object whose bitmap copy you are creating (in other words, it will use the resolution that you specified for that object when exporting it via the Export Bitmap dialog), or the default 90 dpi if that object was not yet exported. Also, a 90 dpi bitmap (with its pixels exactly 1 px in size) will be snapped to the pixel grid. This makes it easy to use Create Bitmap for quick rasterization preview of an object or document. (Note: if you have used a previous version of Inkscape, your preferences.xml may containminsize="250"
; delete this for objects' resolution hints to work.)
- Using extended input (i.e. tablet pressure and tilt) can now be disabled via Preferences (Misc tab). This is intended to be a last-resort option for those platform/hardware combinations that are not properly supported by GTK. With extended input disabled, you can still use your tablet as a mouse.
- Simplify Path now has two modes when working with a group of paths: the default mode, which treats all of the paths as one large object to simplify, or the new mode, which acts the same as using Simplify on each path in a group separately. In preferences.xml, set options.simplifyindividualpaths to 1 to get the new mode.
- For long Simplify operations (more than 20 paths at a time), Inkscape provides user feedback via the status bar as to how many paths have been simplified. This change also prevents Inkscape from appearing to have locked up during the operation.
- New templates added for video formats (PAL, NTSC and HDTV 1080) as well as DVD cover templates that were not installed in the previous version. This will help video and DVD authoring with Inkscape. The business card 85×54 template is now installed as well.
- "Other" license type was added to the metadata/license dialog so that people know that they are entering a URI to an "other" license.
Examples
- With all the recent additions - clipping, masking, and especially blur - Inkscape is now able to produce extremely photorealistic art. In the share/examples folder in Inkscape distribution, you will find two brand new, stunningly realistic images of shiny cars: car.svgz by Konstantin Rotkevich and gallardo.svgz by Michael Grosberg.
- Inkscape 0.45 does not yet have gradient meshes. But with the addition of Gaussian Blur, this feature suddenly got within reach. A new example file, gradient-mesh-experimental.svgz, explains the approach Inkscape will likely take to implement this feature in a fully SVG-compatible way.
- Although Inkscape does not support animation yet, you can add any animation scripts and attributes to your SVG file manually in a text editor - and the file will still be editable in Inkscape. Tavmjong Bah used this technique to create animated-clock.svg which, when loaded in an SVG viewer supporting animation (such as Firefox, Opera, or Batik), demonstrates the intricate moving clockwork of a watch - and shows real time to boot! If loaded in Inkscape, the image is static, but instead you can freely edit any of the objects.
Translations, tutorials, templates
- Remarkable improvements are in the Danish, Finnish, Nepalese and the Vietnamese translations of the user interface. They all jumped from 0 to over 90 percent in a very short timespan.
- All people which are familiar with pig latin are now able to use Inkscape's user interface in that language. Isthay isway oughtbray otay usway ybay away ewnay anslatortray.
- Updated British English, Catalan, Czech, Bulgarian, French, Danish, Finnish, German, Brazilian Portuguese and Thai, Vietnamese and Dzongkha translations.
- A new Esperanto translation added including default document template.
- Default Lithuanian template was not installed before, which is now fixed.
- New tutorial "Easter Eggs" by Steve Karg.
- Added Catalan default template and elements tutorial.
- Russian header and footer templates for tutorials are added.
- Several tutorial translations were updated, namely Catalan, Brazilian Portuguese, Russian, German, Danish and French.
- There are also new Russian and Japanese translations of Windows installer strings.
Dependency changes
- We have changed the GTK+ requirement for compilation to version 2.8. However, it is highly recommended to use at least the version 2.10.7 because previous versions contain at least one crash bug which may cause Inkscape to crash after typing in a value into a spinbutton.
Notable bugfixes
- When deleting a node, neighboring smooth nodes are converted to cusp.
- Releasing the mouse button while dragging nodes using a tablet will now always release the nodes. Before this, a race condition could occur where dragging could continue after the mouse button was released.
- An object's mask and clipping path are now preserved after Simplify, Object/Stroke to path, or boolean operations.
- Ungrouping a group containing clipped/masked objects might sometime break the clip/mask (move it away); this is fixed.
- Transforming an object and its clone no longer behaves unexpectedly when they are both within a transformed group.
- User-supplied templates in ~/.inkscape/templates can now be SVGZ files in addition to SVG.
- Previously, Inkscape didn't check if there's enough free memory for its pixel buffers and could crash without warning due to insufficient memory e.g. upon zooming in. This problem became much worse after implementing Gaussian blur, because rendering blurred objects at high zooms may require a pixel buffer much bigger than the visible canvas. Now this situation is handled more gracefully: if a display operation requires more memory than available, or more than 100Mb (which corresponds to a 5000x5000 pixel buffer), it is skipped. This may result in blurred objects "disappearing" at high zooms. This is purely a display issue, however, and it never corrupts data; just zoom out (or reduce blur radius) and the disappeared object will show up OK.
- When resizing objects, scaling numbers in the statusbar are no longer overwritten by other text when pressing the modifier keys (Alt, Shift, Ctrl).
- To work around problems some users had with pressure-sensitive tablets (bug 1281512), the pressure sensitivity can be disabled from the Misc tab of Inkscape Preferences dialog. After that, the tablet can still be used as a regular mouse.
- The layer widget in the statusbar used to lose its current layer after an effect run; this is fixed.
- When using different display resolutions or a dual screen setup, dialogs could be displayed off-screen; this is fixed: now Inkscape checks whether the saved position of the dialog is offscreen, if so it will move the dialog to the center of the screen. Note that this not solve all problems. If the dialog is still not visible, go to the bug 1250236 where a procedure is given to make the dialog visible (by editing preferences.xml).
- Grid and guidelines no longer vanish when changing their color.
- Group transformation is now correctly re-applied when ungrouping and then undoing the ungroup operation.
- Text dialog no longer discards the style of the selected text.
- Inkscape no longer crashes when you try to unflow an empty flowed text.
- Thanks to patches submitted by users of our community, Inkscape can now be built on SGI IRIX 6.5.28, gcc 3.4.0 systems and on Tru64 systems.
Known problems
Problem with "Dialogs on Top" on Windows
- Although the "Dialogs on Top" option is now available on Windows (File > Inkscape Preferences > Windows), it does not work exactly as it should (yet!). When the document window is minimized, the dialogs remain visible, i.e. are not minimized together with the document window. Because of this, it is not possible to get the document window back by clicking its taskbar button. A workaround to this problem is to right-click the Inkscape taskbar button and select "Restore". We expect that future releases of GTK will solve this problem.
Spinbuttons may crash if you have GTK+ older than 2.10.7
- You may experience crashes after typing in a value into a spinbutton if you have a version of GTK+ 2.10.6 or older. Upgrade your GTK+ to fix this. (This does not affect the Windows package as it comes with GTK+ 2.10.9.)
Numerical Python required for Perspective effect
- This effect will not work until you install a python module called numpy (Numerical Python). It can be downloaded at numpy.scipy.org. The Windows package already contains this module.
Do not use a clone of an object as its clipping path/mask
- In this version, you cannot use an object's clone as its clipping path or mask. Either unlink the clone first, or clip one clone of a source object (not the source itself) by another clone of the same. Properly fixing this bug requires some deep changes in the code and therefore was postponed until after 0.45 so as not to delay the release.
Non-Unicode symbol fonts on Windows don't work
- On Windows, symbol fonts without a Unicode map do not work. This is a limitation of the Pango library that we use.
Problems with some Debian libgc-6.7 packages
- Inkscape will hang or crash when linked with the first Debian packaged version of the Boehm garbage collection library. This problem was fixed in version 1:6.7-2 of the package. If you have libgc 6.7 on your Debian-based system, make sure that you are using that version of the package or later.
Beware of defective themes on Linux
- Inkscape and other Gtk programs can crash on any Linux, when the gtk2-engines-smooth / libsmooth package is installed. We have filed a bug against libsmooth which is now in gtk-engine and part of gnome. Removing the package resolves the problem. Update: this bug appears to be fixed in newer versions of gtk-engines. If you are affected by this problem please update to a newer version of gtk-engines. If problems persist then please inform the gtk-engines maintainers of the problem.
- A similar crash happens if the KDE Baghira theme or the package gtk_qt_engine are installed. If you experience Inkscape crashes on KDE, please try to install a different theme from Baghira, or uninstall the gtk_qt_engine package from your system. Both problems also affect older versions of Inkscape.
Other releases
- Inkscape 1.5 — development branch
- Inkscape 1.4 — current stable release branch
- Inkscape 1.3 (1.3.1, 1.3.2)
- Inkscape 1.2 (1.2.1, 1.2.2)
- Inkscape 1.1 (1.1.1, 1.1.2)
- Inkscape 1.0 (1.0.1, 1.0.2)
- Inkscape 0.92 (0.92.1, 0.92.2, 0.92.3, 0.92.4, 0.92.5)
- Inkscape 0.91
- Inkscape 0.48 (0.48.1, 0.48.2, 0.48.3, 0.48.4, 0.48.5)
- Inkscape 0.47
- Inkscape 0.46
- Inkscape 0.45
- Inkscape 0.44
- Inkscape 0.43
- Inkscape 0.42
- Inkscape 0.41
- Inkscape 0.40
- Inkscape 0.39
- Inkscape 0.38
- Inkscape 0.37
- Inkscape 0.36
- Inkscape 0.35