Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


Hi Heiko,

Heiko Tietze schrieb:
Hello all,

the LibreOffice conference gave me the chance to present some ideas regarding Draw and shapes in 
general. One of the most wanted features is the multistop gradient. Today we can define gradients 
between two colors, either linear, radial, or whatever. It would be nice to have a) non-linear 
multistop gradients, for example to illustrate a sundown with a small red and a larger yellow 
section, and b) a gradient over more than two colors, e.g. in order to add blue sky to the sundown.

Since Calligra offers multicolor gradients, Armin and me checked how it is saved (the rendering is 
build-in right now). And it turns out that they hack SVG into the ODF.

That is no "hack SVG into ODF ". The feature "svg-gradient is in ODF from the beginning. In ODF 1.1 it is in "14.14.2 SVG Gradients", and in ODF 1.2 it is in 16.40.2<svg:linearGradient>, 16.40.3<svg:radialGradient> and 16.40.4<svg:stop> and its attributes in chapter 19. Only OpenOffice.org had no implementation for it.

The request for LO is in
https://bugs.documentfoundation.org/show_bug.cgi?id=94588

 For the (predefined) rainbow-like gradient the style.xml looks like this:

<svg:linearGradient draw:name="gradient1" svg:spreadMethod="pad" svg:x1="0.000000%" svg:x2="100.000000%" 
svg:y1="0.000000%" svg:y2="100.000000%">
<svg:stop svg:offset="0" svg:stop-color="#ff0000"/><svg:stop svg:offset="0.183575" svg:stop-color="#ffe100"/><svg:stop svg:offset="0.347826" svg:stop-color="#00ff00"/><svg:stop 
svg:offset="0.516908" svg:stop-color="#00ffff"/><svg:stop svg:offset="0.68599" svg:stop-color="#0000ff"/><svg:stop svg:offset="0.845411" svg:stop-color="#ff00fb"/><svg:stop svg:offset="1" 
svg:stop-color="#ff0004"/>
</svg:linearGradient>

A true "rainbow" is not possible, because that needs a HSB color model. So using stops is the only way to do it as SVG gradient. The quoted snippet is all valid ODF.

ODF has some restrictions compared to SVG. But starting with that, what is currently possible in ODF, would help a lot. And I personally see no problem in getting further SVG features into ODF1.3 if needed and an implementation exists.


As an UX evangelist I don't care too much about the implementation

But I do. I prefer a solution with clean ODF.

Therefore I do not want an isolated, workaround solution for OOXML import as touched upon in https://bugs.documentfoundation.org/show_bug.cgi?id=76682 and was proposed in https://gerrit.libreoffice.org/#/c/12056/

 and have rather the workflow and interactions in mind.

It needs another UI. The linear bar as in PowerPoint is not the only possible solution. I like more the two dimensional way, where you define a way in a color area. (I just don't remember, where I saw it.)

Ideally the multi-gradient works with all features, and not as another type next to linear, radial etc. (There might be a problem that result in this sub-optimal solution).

It is another kind of gradient. The <draw:gradient> kind 'rectangle' and 'square' are not possible with SVG.


And finally we have to take interoperability into account as well as the conformity to the ODF 
specs (no idea if and how it is defined).

See above.


So how do we make multistop/multicolor gradients possible?

There exists already rendering solutions in rendering SVG-images.



Cheers,
Heiko

PS: Suggestions on how to implement this feature in the UI are existing.

Where?

Kind regards
Regina


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.