SVG to PNG: Text shadow

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
cydog
Posts: 5
Joined: 2015-02-11T06:11:31-07:00
Authentication code: 6789

SVG to PNG: Text shadow

Post by cydog »

Hey.

I'm trying to convert some SVG code to PNG. My SVG contains of both text and images (base64-encoded). I have been viewing the SVG file in Google Chrome, Mozilla Firefox and Internet Explorer. It looks good.

On Linux, I'm running:

Code: Select all

convert <file>.svg <file>.png
Here is what I get in return, compared with my SVG file from Internet Explorer. I have a filter applied to my text, which uses feGaussianBlur, feOffset, feComponentTransfer, feMergeNode.

Image

Other information

Code: Select all

convert -list format | grep SVG
Output:

Code: Select all

MSVG  SVG       rw+   ImageMagick's own SVG internal renderer
SVG  SVG       rw+   Scalable Vector Graphics (RSVG 2.36.1)
SVGZ  SVG       rw+   Compressed Scalable Vector Graphics (RSVG 2.36.1)

Code: Select all

convert --version
Output:

Code: Select all

Version: ImageMagick 6.7.7-10 2014-03-08 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
The Problem

I want to have the shadow to look identical to the one above (which uses the same SVG code). I also tried to install inkscape, the shadow looked correct there, however, it seemed like inkscape doesn't load base64-encoded images at all. The PNG output did just contain text, no images at all.

Any suggestions would be much appreciated.

Thank you!!
snibgo
Posts: 12159
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

Re: SVG to PNG: Text shadow

Post by snibgo »

The answer is usually to make Inkscape the delegate. I'm surprised that it can't process base64. You are running a very old IM. Is your Inkscape just as old? If you put an SVG file somewhere like dropbox.com and paste the link here, I can take a look. Or paste the contents of the SVG here between [ code ] and [ /code ] tags.
snibgo's IM pages: im.snibgo.com
cydog
Posts: 5
Joined: 2015-02-11T06:11:31-07:00
Authentication code: 6789

Re: SVG to PNG: Text shadow

Post by cydog »

snibgo wrote:The answer is usually to make Inkscape the delegate. I'm surprised that it can't process base64. You are running a very old IM. Is your Inkscape just as old? If you put an SVG file somewhere like dropbox.com and paste the link here, I can take a look. Or paste the contents of the SVG here between [ code ] and [ /code ] tags.
Thanks for the reply.

I tried with the latest Imagick as well:
Version: ImageMagick 6.9.0-5 Q16 x86_64 2015-02-11 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates (built-in): png zlib
Looks exactly the same. If I upgrade Inkscape, do you think it will work? Can it process base64-encoded images?
snibgo
Posts: 12159
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

Re: SVG to PNG: Text shadow

Post by snibgo »

Sorry, my crystal ball doesn't work. If you put up an SVG file, I can try it out.

You do realise, I suppose, that Internet Explorer may be displaying it incorrectly.

EDIT: I should add that the SVG specification rarely says exactly what a result should look like, and renderers may do different things.
snibgo's IM pages: im.snibgo.com
cydog
Posts: 5
Joined: 2015-02-11T06:11:31-07:00
Authentication code: 6789

Re: SVG to PNG: Text shadow

Post by cydog »

snibgo wrote:Sorry, my crystal ball doesn't work. If you put up an SVG file, I can try it out.

You do realise, I suppose, that Internet Explorer may be displaying it incorrectly.

EDIT: I should add that the SVG specification rarely says exactly what a result should look like, and renderers may do different things.
I don't think you need a crystal ball to know if the latest version supports base64 encoded images. Do you?

I have not only checked the result in Internet Explorer, I have done it with many different browsers. Also, the shadow looks good with Inkscape, the problem I had with Inkscape was that it was unable to display base64-encoded images.

That's why I'm very sure that the shadow rendering with Imagick is incorrect.
cydog
Posts: 5
Joined: 2015-02-11T06:11:31-07:00
Authentication code: 6789

Re: SVG to PNG: Text shadow

Post by cydog »

Just tried Inkscape again, with updated version:

Code: Select all

Inkscape 0.91 r13725 (Feb 11 2015)
Doesn't read the base64 encoded images, once again. However, are there any settings or something that you can change in ImageMagick, so that it renders exactly like web browsers do? Or, is there a way in Linux, to export a PNG file from SVG using the same render as Chrome/IE/Firefox uses?
snibgo
Posts: 12159
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

Re: SVG to PNG: Text shadow

Post by snibgo »

Inkscape v0.48 and v0.91 can render base64 embedded in SVG.

For example:

Code: Select all

convert rose.svg r1.png
where rose.svg is:

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="744.09448819"
   height="1052.3622047"
   id="svg2"
   version="1.1"
   inkscape:version="0.48.4 r9939"
   sodipodi:docname="New document 1">
  <defs
     id="defs4" />
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="0.35"
     inkscape:cx="375"
     inkscape:cy="520"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     showgrid="false"
     inkscape:window-width="1920"
     inkscape:window-height="1002"
     inkscape:window-x="-8"
     inkscape:window-y="-8"
     inkscape:window-maximized="1" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <image
       y="755.07648"
       x="590.71429"
       id="image2993"
       xlink:href="data:image/png;base64,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
"
       height="46"
       width="70" />
  </g>
</svg>

snibgo's IM pages: im.snibgo.com
cydog
Posts: 5
Joined: 2015-02-11T06:11:31-07:00
Authentication code: 6789

Re: SVG to PNG: Text shadow

Post by cydog »

snibgo wrote:Inkscape v0.48 and v0.91 can render base64 embedded in SVG.
Seems like you're right. There were some issues with the SVG code (complained something about

If you try the following two filters:

Code: Select all

<filter id="pr_dropshadow_real_1" x="-40%" y="0" width="200%" height="200%">
	<feGaussianBlur in="SourceGraphic" stdDeviation="20" result="blur"></feGaussianBlur> 
	<feOffset dx="20" dy="0" result="offsetblur"></feOffset>
	<feOffset dx="-20" dy="0" result="offsetblur2" in="blur"></feOffset>
	<feOffset dx="0" dy="25" result="offsetblur3" in="blur"></feOffset>
	<feComponentTransfer result="shadow1" in="offsetblur">
		<feFuncA type="linear" slope="0.30"></feFuncA>
	</feComponentTransfer>
	<feComponentTransfer result="shadow2" in="offsetblur2">
		<feFuncA type="linear" slope="0.30"></feFuncA>
	</feComponentTransfer>
	<feComponentTransfer result="shadow3" in="offsetblur3">
		<feFuncA type="linear" slope="0.30"></feFuncA>
	</feComponentTransfer>
	<feMerge> 
		<feMergeNode in="shadow1"></feMergeNode>
		<feMergeNode in="shadow2"></feMergeNode>
		<feMergeNode in="shadow3"></feMergeNode>
		<feMergeNode in="SourceGraphic"></feMergeNode> 
	</feMerge>
</filter>
 
<filter id="pr_dropshadow_real_2" x="-40%" y="0" width="200%" height="200%">
	<feOffset dx="-5" dy="5"></feOffset>
	<feGaussianBlur stdDeviation="10" result="offset-blur"></feGaussianBlur>
	<feComposite operator="out" in="SourceGraphic" in2="offset-blur" result="inverse"></feComposite>
	<feFlood flood-color="black" flood-opacity="1" result="color"></feFlood>
	<feComposite operator="in" in="color" in2="inverse" result="shadow"></feComposite>
	<feComponentTransfer in="shadow" result="shadow">
		<feFuncA type="linear" slope="1.2"></feFuncA>
	</feComponentTransfer>
	<feMerge> 
		<feMergeNode in="SourceGraphic"></feMergeNode> 
		<feMergeNode></feMergeNode>
	</feMerge>
 </filter>
Then apply the filters to a text:

Code: Select all

<text id="text_field_shadow_1" x="??" y="??" width="3300" height="1300" fill="#0000b5" font-family="SomeFont" filter="url(#pr_dropshadow_real_1)" stroke-linecap="butt" stroke-linejoin="miter" style="font-size: 1010px;">Oliver</text>
<text id="text_field_1" x="??" y="??" width="3300" height="1300" stroke="" stroke-width="4" fill="#ffffff" font-family="SomeFont" filter="url(#pr_dropshadow_real_2)" stroke-linecap="butt" stroke-linejoin="miter" style="font-size: 1010px;">Oliver</text>
The reason why the shadow is so thick, is because filter pr_dropshadow_real_1 contains three different shadows. This is because browsers didn't show any shadow at all if I only used one (also it was kind of misplaced, didn't cover everything like it should do). When I only use one shadow, it looks very good when the image is rendered using Inkscape. However, I need to have them both look similar to eachother.

I don't know if I'm creating the shadow incorrectly, or what the issue could be.. Maybe there's another way of doing the shadow?

This is exactly how the shadow should look like:

Image

With my new image, that I generated with Inkscape, the color is a bit lighter, but it's still much more visible than it is when you view it using any web browser. Do you think I can improve the filter, so that it looks same in both browsers and Inkscape?

Thank you, once again.
Post Reply