RE: Future SVG Filter Ideas

"'David Dailey' [email protected] [svg-developers]" <[email protected]> Tue, 15 Dec 2015 15:35:59 -0500
Newsgroups gmane.text.xml.svg.devel
Message-ID <001e01d13778$35fbe980$a1f3bc80$@net>
Hi James,

=20

I had wanted to take time to think about your suggestions more fully, to ma=
ke sure I understood them properly and that they weren=E2=80=99t in any way=
 redundant with things already in SVG1.1, but absent having had that time, =
I think it makes sense to reply rather than to leave a void. I=E2=80=99m no=
t sure what all is planned for SVG2.0, nor if the SVG WG is still welcoming=
 public suggestions. Recently there have been suggestions that advocates fo=
r new features should first persuade particular browser makers of the merit=
s, since it is ultimately those entities who must provide advocacy for new =
features to move forward.=20=20

=20

On the other hand, what you=E2=80=99ve suggested seems perfectly reasonable=
, logical and worthwhile to me. It might not hurt to bounce them off the Wo=
rking Group at [email protected].=20

=20

Regards

David

=20

=20

From: [email protected] [mailto:[email protected]=
]=20
Sent: Saturday, December 12, 2015 7:45 PM
To: [email protected]
Subject: [svg-developers] Future SVG Filter Ideas

=20

=20=20

Hi List, I have several things that bug be when using filters, so i thought=
 i would document my thoughts :

=20

A) Combine feBlend spec with the CSS Blend modes

CSS Blend modes currently allow the very powerful :  normal ( reset ), scre=
en, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-lig=
ht, difference, exclusion, hue, saturation, color,luminosity

However the blend modes offered in feBlend are very limited only offering :=
 normal, multiply, screen, darken, lighten

Given that browsers already offer these very powerful blend modes these cou=
ld be combined and offered to the user in feBlend as well. e.g. :

=20

<feBlend mode=3D"color | saturation ( etc.. would be great) ">

=20

B) Inline feImage

One of the most powerful features of SVG filters is feImage, especially whe=
n importing other referenced parts of the document. This is still often qui=
te a verbose experience as you have to place external parts in a defs tag, =
give them an id, reference that id etc...=20

It would be far cleaner if you could inline svg directly inside a special f=
ilter tag. Maybe simply :

=20

<feInlineImage height=3D"50" width=3D"50">

  <circle cx=3D"10" cy=3D"10" r=3D"15" fill=3D"black" />

</feInlineImage>

=20

C) Importing / Referencing other filters in a filter

It would be incredibly useful to be able to, like you can with an feImage o=
r a use element for graphical nodes, pull in another filter's filter nodes,=
 and therefore combine multiple filters into one far more powerful filter. =
Maybe a "feUse" or "feCombine", e.g. in this very simple example :

=20

<defs>
  <filter id=3D"blur">
    <feGaussianBlur stdDeviation=3D"10" />
  </filter>

  <filter id=3D"hue_rotate">
    <feColorMatrix type=3D"hueRotate" values=3D"180" />
  </filter>

  <filter id=3D"blur_and_hue_rotate">
    <feCombine input=3D"url(#hue_rotate)"/>

    <feCombine input=3D"url(#blur)"/>

  </filter>
</defs>

=20

=20

=20

D) Multiple filters per element

Currently if you wish to apply multiple filters to an element, you currentl=
y have to wrap the element in multiple group G elements, and place each fil=
ter in turn on each element. The experience could be a lot better if the fi=
lter attribute could contain a list of filters separated by spaces maybe ( =
and with a definition of which order to apply them in) e.g. :

=20

<elem filter=3D"url(#filter_1) url(#filter_2) url(#filter_1)" />

=20

=20

=20

Would very much welcome your comments!

=20

James





[Non-text portions of this message have been removed]



------------------------------------
Posted by: "David Dailey" <[email protected]>
------------------------------------

-----
To unsubscribe send a message to: [email protected]=
m
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my membe=
rship"
----