Difference between revisions of "Release notes/0.45"

From Inkscape Wiki
Jump to navigation Jump to search
Line 170: Line 170:
* 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, it never corrupts data; just zoom out (or reduce blur radius) and the disappeared object will show up OK.
* 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, it never corrupts data; just zoom out (or reduce blur radius) and the disappeared object will show up OK.


* When resizing objects, scaling numbers are no longer overwritten by other text when pressing special keys (alt, shift, ctrl).
* When resizing objects, scaling numbers in the statusbar are no longer overwritten by other text when pressing special keys (alt, shift, ctrl).


= Known problems =
= Known problems =

Revision as of 00:37, 30 October 2006

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.

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 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).
  • 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 artefacts, 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.

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 a 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 its 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.
  • 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 like it is more blurred on its transparent side than on its opaque side.

Undo history

  • Inkscape now features a History Dialog accessible through [CTRL] + [SHIFT] + H or Edit→Undo History. All changes 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 collapsable branch showing a triangle marker and the number of the hidden actions in the branch.
    • By clicking on an event 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.

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 interruptivility is fine-tuned for some interactive operations (such as node dragging) so that a balance is achieved between responsiveness and completeness of display.
  • Radial gradients are rendered faster by at least 10%.
  • Screen render is faster by 2-3%, up to 5% for complex drawings with transparency.
  • Display is more responsive when working at high zoom levels when using a tablet.
  • 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.

Tools

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), although it can pick it just as it does any other kind of opacity.

Calligraphy

  • A new numeric parameter, Round, controls the rounding of the ends of calligraphic strokes. This parameter can range from 0.0 (flat caps) to 1.0 (approximately half-circle 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.

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. These colors, as well as the colors of the regular object outlines (default black on light background and white on dark background) are now changeable by editing the "wireframecolors" group in the preferences file (~/.inkscape/preferences.xml).
  • An object with no fill and no stroke, invisible and not selectable by mouse clicking in normal more, can now be picked by a mouse click in the Outline mode using its visible outline.
  • 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.

PDF export

  • A new Cairo-based PDF exporter has been added to Inkscape. Inkscape 0.45 can export shapes, strokes, transparency, gradients, patterns, text, and images correctly to Cairo. While clipping paths and masks are known to be faulty or missing. Cairo will write a PDF with vector graphics when possible and fall back to raster graphics when needed. What can be exported as vectors and how much of the image will be rasterized when the fallback kicks in depends on your version of Cairo. Cairo version 1.2 with the pdf backend compiled in is the minimum requirement for any Cairo-based PDF exports.
  • The native PDF exporter introduced in Inkscape 0.44 is improved along with the new Cairo-based PDF exporter. Changes since Inkscape 0.44 include: New features: bitmap images can be embedded, pdf files can be exported from commandline. Changed behaviour: 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.


Command line

  • The new --export-pdf command line parameter allows exporting an SVG image to PDF from command line.

Keyboard profiles

The previous release allowed sets of keybinding to be created for Inkscape in the style of other applications. Two more sets of keybindings 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 do help us out by reporting any problems you may have or improvements you would like to request.

Additionally, a keybinding that focuses on tablet-based illustration and drawing work has been added:

  • right-handed-illustration.xml

This keybinding places all commonly-used commands under the left hand, so that the user's hands rarely leave the keyboard or the tablet/stylus.

Extension effects

  • [tabs and enumerations in extension effect UI - Johan Engelen]
  • A new extension, Render > Lorem ipsum 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.
  • 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 its id as an "action" in your ~/.inkscape/keys/default.xml).

Even more improvements

  • [Save a copy]
  • [new cursors - scislac]
  • [axonometric grid]
  • [new Help commands]
  • Exported PNG images have the correct resolution set in the headers.
  • [expand/contract selection in node tool, sculpt profiles - bbyak]
  • Simplify Path now had 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 for video (PAL, NTSC and HDTV 1080). Few DVD cover templates that was not installed in previous version. This will help video and DVD authoring with Inkscape. common Business card 85x54 template was not installed too.
  • Added "Other" license type to the metadata/license dialog so that people know that they are entering a URI to an "other" license.
  • Doxygen DoxyFile is updated
  • Thanks to patches submitted by users, Inkscape can now be built on SGI IRIX 6.5.28, gcc 3.4.0 systems and on Tru64 systems.

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.

Translations

  • 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.
  • default lituanian template was not installed. Fixed.
  • Updated British English, Catalan, Bulgarian and Thai translations.

Tutorials and Templates

  • Added Catalan default template and elements tutorial.

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); fixed.
  • 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, 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 special keys (alt, shift, ctrl).

Known problems

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.

Previous releases