Wie exportiert man automatisch mehrere Assets mit mehreren Auflösungen aus einer einzigen SVG-Datei mit Inkscape?

Danke für deine Kommentare. Mir ist klar, dass meine anfängliche Formulierung verwirrend gewesen sein könnte, also habe ich versucht zu erklären, wonach ich suche ...


Ich verwende Inkscape zum Entwerfen und Exportieren von App-Assets. Diese Assets werden in einer 4-fachen Skala erstellt (was xxxhdpiauf Android oder @4xauf iOS entspricht). Nehmen wir an, ich habe mehrere Vektorsymbole mit 256 x 256 Pixeln in einem einzelnen SVG , das in Inkscape geöffnet ist. Ich muss jedes dieser Symbole mit den folgenden Auflösungen exportieren:

  • 22,50 dpi ( mdpifür Android) -> 64x64 Pixel
  • 33,75 dpi ( hdpifür Android) -> 96 x 96 Pixel
  • 45,00 dpi ( xhdpifür Android, @2xfür iOS) -> 128x128 Pixel
  • 67,50 dpi ( xxhdpifür Android, @3xfür iOS) -> 192x192 Pixel

Dies manuell zu tun ist wirklich mühsam. Meine Frage lautet daher: Gibt es eine effiziente Möglichkeit, ein oder mehrere bestimmte Objekte in einer SVG-Datei mit mehreren Auflösungen aus Inkscape zu exportieren?

Hinweis : Ich habe eine funktionierende Skriptlösung gehackt, die svg-objects-export mehrmals aufruft, aber es ist sehr langsam und unbequem, weil ich das Skript jedes Mal anpassen muss, wenn ich der SVG-Datei ein Asset hinzufüge.

Idealerweise suche ich nach einer Lösung innerhalb von Inkscape ("Klicken und exportieren", möglicherweise für mehrere ausgewählte Objekte gleichzeitig). Wenn das nicht möglich ist, nehme ich die nächstbeste Option. Eine Befehlszeilenlösung wäre in Ordnung, solange sie schnell ist und automatisch alle Assets in eine Datei exportiert.

Aus Qualitätsgründen suche ich auch keine Lösung um exportierte PNGs zu verkleinern.

Haben Sie sich die Befehlszeilenoptionen für den Export angesehen ? Das Flag --export-dpi kann helfen.
@PaoloGibellini Guter Hinweis, danke. Das oben erwähnte Python-Skript verwendet diese Option ebenfalls. Es scheint jedoch, dass ich jedes Objekt manuell mit angeben müsste --export-id. Ich hatte gehofft, eine Lösung zu finden, mit der ich nur alle Objekte in die SVG exportieren kann. Eine solche Option scheint es aber nicht zu geben.
Mmm ... vielleicht könnte eine einfache Batch-Datei oder Shell-Datei ausreichen.
@PaoloGibellini Ja. Ich habe ein funktionierendes Shell-Skript, das das tut, aber ich muss die ID jedes Objekts angeben, das ich exportieren möchte. Ich suche nach einer einfacheren (und schnelleren) Lösung, die alle Objekte, die sich derzeit in der SVG befinden, in allen gewünschten Auflösungen exportieren würde, ohne das Skript ändern zu müssen.
Ok, verstanden, tut mir leid im Moment habe ich keine besseren Ideen.
Ich verstehe das Problem mit der Befehlszeilenlösung nicht. inkscape my-file.svg --export-png=my-file-mdpi.png --export-dpi 22.50Funktioniert bei mir z.B. problemlos. Sie müssten nur ein 4-zeiliges Skript erstellen, das in jeder Größe exportiert. Das Skript kann sogar den Dateinamen als Argument verwenden, sodass es wiederverwendbar ist, wenn Sie dies regelmäßig für verschiedene Bilder tun.
@Scribblemacher Danke. Mir ist klar, dass ich nicht richtig angegeben habe, dass ich nach einer Lösung suche, um (mehrere) einzelne Objekte aus einer SVG-Datei zu exportieren. Ich habe die Frage entsprechend aktualisiert ...
Ah, jetzt verstehe ich. Die Verwendung --export-idvon @KlaasNotFound scheint mir eine vollkommen gute Lösung zu sein, wenn Sie Bereichen einen vorhersehbaren Namen geben. Persönlich würde ich es einfach in separate SVG-Dateien aufteilen und ein Skript durch jede Datei in einem Verzeichnis laufen lassen. Während dies wahrscheinlich ein häufiger Anwendungsfall für Inkscape ist, hat es einfach nicht die Fähigkeit, das zu tun, was Sie verlangen (so wie es ist - ich bin sicher, dass eine Erweiterung geschrieben werden könnte). Mich würde interessieren, ob Illustrator diese Funktion hat.

Antworten (4)

Erstellen Sie Klone Ihrer Symbole für jede der Additionsgrößen, die Sie exportieren möchten. Geben Sie ihnen IDs in den Objekteigenschaften und verwenden Sie die Stapelexportoption , um alle mit einem Klick zu speichern.

Inkscape-Klone

Probieren Sie vielleicht eine dieser Erweiterungen aus (habe sie nicht getestet):

https://inkscape.org/en/~owenfromcanada/%E2%98%85androidvector (anderes Konzept, exportiert Vektoren für Android)

https://github.com/ChristianBecker/inkscape-android-export (wonach Sie gefragt haben)

(Eine Websuche findet möglicherweise noch ein paar mehr davon, Schlüsselwörter 'extension Inkscape android')

Es gibt eine App Icon Generator Extension von Carlos Vazquez, aber es sieht so aus, als hätte der Autor das Projekt aufgegeben und akzeptiert keine Pull-Requests. Der bisher beste Fork: https://github.com/firephreek/inkscape_app_icon_generator

Probieren Sie dieses Tool aus https://github.com/redwarp/9-patch-resizer Es ändert automatisch die Größe von .png-Dateien in verschiedene Dichten.

"Aus Qualitätsgründen suche ich auch nicht nach einer Lösung, um exportierte PNGs zu verkleinern."