- From: Chris Lilley <chris@w3.org>
- Date: Tue, 15 Oct 2013 18:02:05 +0200
- To: FX <public-fx@w3.org>
Hello , Here is a proposal for a new feHSL element which performs hue rotation and saturation changes without suffering from internal clipping. Due to filter effects clipping after each primitive, saturation increases will still suffer from clipping in a multi-stage pipeline. I didn't provide for any operations on the L axis of HSL because operations on lightness or luminance are already available by other means. ================================================= Name: feHSL Categories: Filter primitive element Content model: Any number of the following elements, in any order: <animate> <set> Attributes: core attributes — ‘id’, ‘xml:base’, ‘xml:lang’, ‘xml:space’ presentation attributes — ‘alignment-baseline’, ‘baseline-shift’, ‘clip’, ‘clip-path’, ‘clip-rule’, ‘color’, ‘color-interpolation’, ‘color-interpolation-filters’, ‘color-profile’, ‘color-rendering’, ‘cursor’, ‘direction’, ‘display’, ‘dominant-baseline’, ‘enable-background’, ‘fill’, ‘fill-opacity’, ‘fill-rule’, ‘filter’, ‘flood-color’, ‘flood-opacity’, ‘font’, ‘font-family’, ‘font-size’, ‘font-size-adjust’, ‘font-stretch’, ‘font-style’, ‘font-variant’, ‘font-weight’, ‘glyph-orientation-horizontal’, ‘glyph-orientation-vertical’, ‘image-rendering’, ‘isolation’, ‘kerning’, ‘letter-spacing’, ‘lighting-color’, ‘marker’, ‘marker-end’, ‘marker-mid’, ‘marker-start’, ‘mask’, ‘mix-blend-mode’, ‘opacity’, ‘overflow’, ‘pointer-events’, ‘shape-rendering’, ‘stop-color’, ‘stop-opacity’, ‘stroke’, ‘stroke-dasharray’, ‘stroke-dashoffset’, ‘stroke-linecap’, ‘stroke-linejoin’, ‘stroke-miterlimit’, ‘stroke-opacity’, ‘stroke-width’, ‘text-anchor’, ‘text-decoration’, ‘text-rendering’, ‘unicode-bidi’, ‘visibility’, ‘word-spacing’, ‘writing-mode’ filter primitive attributes — ‘x’, ‘y’, ‘width’, ‘height’, ‘result’ ‘class’ ‘style’ ‘in’ ‘type’ ‘value’ DOM Interfaces: SVGFEHSLElement This filter applies a transformation in HSL colorspace. Input values are converted (if needed) from the colorspace given by 'color-interpolation-filters' to sRGB, and then to HSL for processing. Results are converted from HSL to the colorspace given by 'color-interpolation-filters'. The calculations are performed on non-premultiplied color values. Attribute definitions: type = "hue" | "saturation" Indicates the type of operation to be performed: hue rotation or saturation/desaturation. The lacuna value for 'type' is "hue". value = <number> For type="hue", the value represents a hue rotation in degrees. Positive and negative angles may be specified. The new hue angle H' is given by H' = (H + value) mod 360 For type="saturation", the value represents a saturation multiplier. Values less than 1.0 represent desaturation; values greater than 1.0 represent increases in saturation. A value of 0.0 results in full desaturation to the L axis. The new saturation value S' is given by S' = S * value Note that results are clamped to the saturation range 0.0 ... 1.0 The lacuna value of 'value' depends on the value for 'type'. For type="hue" the lacuna value for 'value' is 0.0 (no rotation); for type="saturation" the lacuna value for 'value' is 1.0 (no change in saturation). ============================================================= Add an example or two and some suitable definition for the DOM interface. -- Best regards, Chris mailto:chris@w3.org
Received on Tuesday, 15 October 2013 16:02:13 UTC