Hannes: SVG PNG

Hallo,

gibt es eine Möglichkeit, ein *.png in ein *.svg einzubinden, aber nicht mit dem Pfad zum *png sondern direkt das *.png in das svg einbetten, sodass alles in einer Datei ist.
Bis jetzt habe ich es nur so geschafft:

  
<svg>  
...  
<g  
     inkscape:label="Ebene 1"  
     inkscape:groupmode="layer"  
     id="layer1">  
    <image  
       y="-35.994961"  
       x="-667.85718"  
       id="image"  
       height="1259.5714"  
       width="2018.5714"  
       sodipodi:absref="Pfad/zum/PNG"  
       xlink:href="Pfad/zum/PNG" />  
  </g>  
</svg>  
  

  1. Falls hier sonst keiner antworten sollte:

    Konkret ist mir nichts bekannt und mit PNG kenne ich mich auch nicht aus. Da SVG aber XML ist und es inline Grafiken gibt, würde ich einfach mal nach dem James-Dean-Prinzip ("Denn sie wissen nicht was sie tun.") rumprobieren.

    Sollte man tatsächlich prinzipiell so vorgehen können, ist aber fraglich ob das Client-seitig unterstützt wird.

  2. Hallo,

    gibt es eine Möglichkeit, ein *.png in ein *.svg einzubinden, aber nicht mit dem Pfad zum *png sondern direkt das *.png in das svg einbetten, sodass alles in einer Datei ist.
    Bis jetzt habe ich es nur so geschafft:

    <svg>
        <image ...  xlink:href="..." />
    </svg>

      
    Das ist der übliche Weg.  
      
    Was du möchtest ist, binäre Daten in einer Klartextdatei einzufügen, D.h. du muust erst das PNG mit base64 encoden, dann könntest du so etwas versuchen:  
      
    <image width="..." height="..."  
    xmlns:xlink="http://www.w3.org/1999/xlink"  
    xlink:href="data:image/png;base64,XXXXXXXXXXXXXXXXXXXXXXXXXX"  
    xlink:type="simple"  
    xlink:actuate="onLoad"  
    preserveAspectRatio="xMidYMid meet"  
    xlink:show="embed"/>  
      
    In der Zeile:  
    xxlink:href="data:image/png;base64,XXXXXXXXXXXXXXXXXXXXXXXXXX"  
    kommt statt den vielen X, das base64 code des PNG.  
      
    Grüße  
    Thomas