Difference between revisions of "SpecCustomPredefinedFilters"

From Inkscape Wiki
Jump to navigation Jump to search
Line 64: Line 64:
* Cross engraving (new)
* Cross engraving (new)
* Drawing (new)
* Drawing (new)
* Neon (new)
* Neon draw (new)
* Posterize
* Posterize
* Posterize basic
* Posterize basic (new)


== TODO ==
== TODO ==

Revision as of 19:08, 10 January 2011

Launchpad Entry: https://blueprints.launchpad.net/inkscape/+spec/custom-predefined-filters

Summary

The goal is to add new custom predefined filters (CPF) with parameters (such as the existing Drop Shadow filter), by using the internal extensions system. I wouldn't be a full high level filter editor (such as https://blueprints.launchpad.net/inkscape/+spec/non-advanced-filters-ui), but just an UI help for creating custom filters based on predefined sets of primitives.

It could also be useful if we wish to reduce the number of predefined filters by grouping them by filter type.

Release Note

Examples can be tested in the trunk, Filters>Experimental menu.

We have started with filters from the color group, but plan to work on some other groups before 0.49 is out.

Rationale

Inkscape now has lots of predefined filters, but doesn't provide an simple UI to create them. Modifying them would be great too, but:

  • Some high level parameters may not be linked to a single primitive parameter.
  • Applying two filters to the same object merges the filters, and thus makes them difficult to modify afterward.
  • It probably would require new inkscape specific attributes in order to map to the available simplified parameters to the primitives ones.

Thus this project on focuses on the improving the creation of new filters, which is relatively straightforward thanks to the internal extension design.

Design

CPFs are based on the internal extension system, already used to create the Drop shadow, Drop glow and Snow filters (available as of 0.47). CPE are very easy to implement with internal extensions (lots of code specific to filters already exist), very probably a lot easier than with external (inx+py) extensions.

New CPFs can either replace existing predefined filters (when finding the parameters to reproduce it is not too difficult) or be added to the list (very generic CPFs).

Adding an optional presets list to extensions, so that users can choose between default, user, and other predefined parameters in a drop-down list, would ease the replacement of the current filters (specification needed).

Adding new extension widgets (horizontal slider) would also make parameters tweaking more handy.

Filters list

Old static filter name given as comment (if different from the new one).

ABC

  • Blur
  • Clean edges
  • Color shift (new)
  • Diffuse light
  • Feather
  • Matte jelly
  • Noise fill (replaces Noise fill and Noise transparency)
  • Outline (Black outline)
  • Roughen
  • Silhouette (replaces Alpha repaint monochrome)
  • Specular light

Color

  • Colorize (replaces the previous Colorize + Duotone and Sepia)
  • Duochrome
  • Electrize (new)
  • Quadritone
  • Solarize (replaces Solarize and Lunarize)
  • Tritone

Morphology

  • Cross-smooth (replaces Cross smooth and Smooth edges)

Shadows and glows

  • Colorizable drop shadow (replaces Drop shadow and Drop glow)

Experimental (not yet affected)

  • Chromolitho (new)
  • Cross engraving (new)
  • Drawing (new)
  • Neon draw (new)
  • Posterize
  • Posterize basic (new)

TODO

  • Existing CPFs need testing and code documentation.
  • Reorganize the existing filters list in order to integrate the new CPFs.
  • Gimp already has lots of CPFs. Let's not reinvent the wheel...

Roadmap

Initial development

From November 2010 to February 2011

Initial filter sets. All the ABC filters and some others of all kind should be available (total: ~20 filters).

Request for comments

February 2011

General presentation on the dev list. Comments are welcome!

Final phase (if the project is widely accepted)

March 2011 -> 0.49

Some new filters, UI consistency (parameters name and behavior), filters grouping...

Discussion