SVG- und viewBox-Werte

13

Ich bin nur neugierig, ob jemand weiß, wie viewBoxWerte (dh viewBox="a b c d") bestimmt werden.

Ich versuche, die SVG-Funktionalität von Inkscape zu verstehen. Daher habe ich in Inkscape ein Dokument erstellt, das 100pxx 100pxist und eine Linie von der linken Seite des Ansichtsfensters (dh 0horizontaler Wert) zur rechten Seite (dh 100horizontaler Wert) gezogen hat. .

Seltsamerweise werden die viewBoxWerte jedoch auf " viewBox="0 0 26.458333 26.458334"statt" gesetzt , wenn ich dieses Dokument als einfache SVG-Datei speichere und die Datei dann in einem Texteditor öffne viewBox="0 0 100 100".

Weiß jemand, wie diese Werte ( 0 0 26.458333 26.458334) bestimmt werden und warum es anscheinend keinen Zusammenhang zwischen ihnen und den Darstellungsbereichsdimensionen gibt?

PS Ich weiß, dass Sie die viewBoxEigenschaft in den Dokumentoptionen manuell bearbeiten können, aber ich bin immer noch gespannt, warum Inkscape sie auf unkonventionelle Werte setzt.

alter Junge
quelle

Antworten:

17

Inkscape verwendet mm als Standard - Display-Einheit oder Benutzereinheit für das Dokument. Benutzereinheiten werden zum Speichern von Werten in der SVG-Datei verwendet.

<svg width="100" height="100" viewBox="0 0 26.458333 26.458333">

Dieses Tag beschreibt eine Zeichnungsgröße von 100px x 100px. Das viewBox-Attribut definiert, dass dies 100px x 100pxäquivalent zu ist 26.458333 x 26.458333 user units.

Der SVG-Skalierungsfaktor ist 1px / 0.2645 user-unit, der von einem SVG-Renderer verwendet werden kann, um alle in Benutzereinheiten gespeicherten Werte in die realen Zeichnungsbemaßungen zu konvertieren .


In diesem Fall möchte Inkscape die Werte speichern mmund muss daher wissen, in welcher pxBeziehung sie zueinander stehen mm. Die CSS-Spezifikation beschreibt, dass absolute Längeneinheiten in Bezug zueinander festgelegt sind:96px = 1in

Das heisst 100px = 1.041666667in = 2.645833333cm = 26.45833333mm

Das ist also, woher das 26.45833333kommt.


Wenn Sie Inkscape alle Ihre Werte in speichern möchten px, können Sie die Standard ändern Anzeigeeinheiten oder Benutzer-Einheiten zu pxin den Dokumenteigenschaften (Datei> Dokumenteigenschaften> Register: Seite> Allgemein> Display Units)

  1. Standard, mm:

Dokumenteigenschaften mm

  1. Geändert: px:

Dokumenteigenschaften px

Das Exportieren desselben Dokuments führt zum folgenden SVG-Tag:

<svg width="100" height="100" viewBox="0 0 100 100">

Jetzt ist der SVG-Skalierungsfaktor 1px / 1 user-unit.

Wenn Sie mehr über dieses Thema erfahren möchten, finden Sie eine ausführlichere Erklärung im Inkscape Wiki

Bemerkungen:

  • Inkscape v0.92 verwendet eine Relation von 96px/in, Inkscape v0.91 und früher einen Wert von90px/in
FWrnr
quelle
Beeindruckend. Sehr interessant. Es gab also einen Reim und einen Grund dafür. Vielen Dank für das Teilen Ihres Wissens!
Oldboy
Ich werde mich an die Whiteout-Technik erinnern, die Sie verwendet haben. Normalerweise lege ich rote Quadrate um die wichtigen Teile von Screenshots, deins ist so viel schöner.
aaaaaa