Ich bin nur neugierig, ob jemand weiß, wie viewBox
Werte (dh viewBox="a b c d"
) bestimmt werden.
Ich versuche, die SVG-Funktionalität von Inkscape zu verstehen, also habe ich ein Dokument in Inkscape erstellt, das 100px
x 100px
ist, eine Linie von der linken Seite des Ansichtsfensters (dh 0
horizontaler Wert) zur rechten Seite (dh 100
horizontaler Wert) gezogen. .
Wenn ich dieses Dokument jedoch als einfache SVG-Datei speichere und die Datei dann in einem Texteditor öffne, werden die viewBox
Werte seltsamerweise auf viewBox="0 0 26.458333 26.458334"
statt beispielsweise viewBox="0 0 100 100"
.
Weiß jemand, wie diese Werte ( 0 0 26.458333 26.458334
) bestimmt werden und warum es scheinbar keine Beziehung zwischen ihnen und den Abmessungen des Ansichtsfensters gibt?
PS Ich weiß, dass Sie die viewBox
Eigenschaft in den Dokumentoptionen manuell bearbeiten können, aber ich bin immer noch neugierig, warum Inkscape sie auf funky Werte setzt.
Inkscape verwendet mm als Standardanzeigeeinheit oder Benutzereinheit für Ihr Dokument. Benutzereinheiten werden verwendet, um Werte in der SVG-Datei zu speichern.
<svg width="100" height="100" viewBox="0 0 26.458333 26.458333">
Dieses Tag beschreibt eine Zeichnungsgröße von 100px x 100px
. Das Attribut viewBox definiert das 100px x 100px
Äquivalent zu 26.458333 x 26.458333 user units
.
Der SVG-Skalierungsfaktor wäre , der von einem SVG -Renderer verwendet werden kann, um alle in Benutzereinheiten1px / 0.2645 user-unit
gespeicherten Werte in die realen Zeichnungsabmessungen umzuwandeln.
In diesem Fall möchte Inkscape die Werte in speichern mm
, also muss es wissen, wie sich das px
auf bezieht mm
. Die CSS-Spezifikation beschreibt, dass absolute Längeneinheiten in Relation zueinander festgelegt sind:96px = 1in
Das heisst100px = 1.041666667in = 2.645833333cm = 26.45833333mm
Daher 26.45833333
kommt die also.
Wenn Sie möchten, dass Inkscape alle Ihre Werte in speichert px
, können Sie die standardmäßigen Anzeigeeinheiten oder Benutzereinheiten in px
den Dokumenteigenschaften ändern (Datei > Dokumenteigenschaften > Registerkarte: Seite > Allgemein > Anzeigeeinheiten).
Das Exportieren desselben Dokuments führt zu folgendem SVG-Tag:
<svg width="100" height="100" viewBox="0 0 100 100">
Jetzt ist der SVG-Skalierungsfaktor 1px / 1 user-unit
.
Wenn Sie mehr zu diesem Thema wissen möchten, gibt es eine ausführlichere Erklärung im Inkscape-Wiki
Bemerkungen:
96px/in
, Inkscape v0.91 und früher verwendeten einen Wert von90px/in
Corey
alter Junge