Tausende von SVG-Icons effizient in der Vorschau anzeigen?

Ich bin über das Icon-Theme Papirus gestolpert (GPL-lizenziert). Man kann das Paket mit Tausenden von SVG-Dateien herunterladen. Das Öffnen jeder Datei in Inksacpe oder Firefox ist kein praktischer Ansatz, um einen Überblick über alle Symbole zu erhalten. Ich möchte 50 Symbole auf einmal zusammen mit ihrem Dateinamen sehen. Gibt es für diesen Zweck eine kostenlose Software oder ein {bash, python, ...}-Schnipsel, das N SVG-Dateien nebeneinander auf einem PNG darstellt?

Diese Art von Sammlung von Miniaturbildern wird oft als „Kontaktabzug“ bezeichnet. Es gibt verschiedene kostenlose Online-Ressourcen zum Erstellen von Kontaktabzügen – ich bin sicher, Sie werden eine finden, die SVGs als Eingabe akzeptiert.
Ich betreibe einen lokalen Host .... es ist eine einfache PHP-Skriptschleife, um alle Bilder in einem Verzeichnis anzuzeigen. Könnte leicht über MAMP oder LAMP erfolgen, wenn Sie das ausführen.
Sehen Sie, was ImageMagick für Sie tun kann.
Ein einigermaßen leistungsfähiger Dateimanager kann dies möglicherweise bereits tun. Auf welcher Plattform bist du?
Ich bin auf Debian GNU Linux mit KDE. Ich habe das Problem inzwischen mit einem Python-Skript gelöst, das eine HTML-Datei mit den Bildern generiert. Ich plane, das zu bereinigen und es hier und auf GitHub zu teilen.

Antworten (3)

Inspiriert durch den Kommentar von Scott, habe ich mich entschlossen, eine eigene Lösung zu schreiben: Ein Python-Skript, das eine statische HTML-Datei mit allen Bildern generiert, siehe https://github.com/cknoll/imagedirpreview .

Selbst mit >3000 SVG-Symbolen ist es beachtlich schnell, siehe Video:

Video (gehostet bei VIMEO)

Sehr ähnlich zu dem, was ich mit PHP mache. Ich habe einfach auf Vorlagen verzichtet, da meine wirklich nur für den internen Gebrauch bestimmt sind. Ich habe eine Menge Bild-"Kataloger" ausprobiert und sie waren alle bei weitem nicht so schnell. Und das Tolle: Zeigen Sie einfach auf ein anderes Verzeichnis, wenn Sie andere Bildersätze in der Vorschau anzeigen möchten.
Ich habe mein ursprüngliches Problem auch ziemlich schnell gelöst. Aber dann dachte ich, es wäre schön, diese Lösung öffentlich zugänglich zu machen, damit andere dieses Problem innerhalb einer Minute lösen können.
Ich habe es von github heruntergeladen, aber weder Pip installiert, noch bieten die Ubuntu-Vertreter (16.04) Pip an. Aber ich habe eine Menge Python-Zeug installiert. Kann ich es ohne Pip bauen/installieren?
@userunknown Installation ohne Pip sollte möglich sein. Die einzige Anforderung, die nicht in der Standardbibliothek enthalten ist, ist jinja2(Template-System). Ich würde jedoch dringend die Verwendung von pip empfehlen, und ich wäre wirklich überrascht, wenn dies in Ubuntu 16.04 nicht verfügbar wäre. Ich benutze debian und der Paketname ist python3-pip. Siehe auch: < saltycrane.com/blog/2010/02/how-install-pip-ubuntu >. Fühlen Sie sich dennoch frei, ein Issue auf Github zu eröffnen.
Aha, so apt search jinja2 zeigt, neben python2 und anderen, python3-jinja2. Das würde ich nehmen, oder? Und ja, mit python(3)-pip finde ich auch pip, danke.

Eine Icon-Manager-Anwendung würde auch für diesen Zweck funktionieren. Ich denke, diese Anwendungen könnten auch als Symbolbibliotheken bezeichnet werden. Ich weiß nicht, ob es ähnliche Apps für Linux oder Windows gibt, aber es gibt einige für Mac.

Sie funktionieren ungefähr genauso wie Font-Manager.

Ich persönlich benutze Iconjar auf dem Mac. Ich verwende es auch zum Speichern anderer Grafiken.

Geben Sie hier die Bildbeschreibung ein

Hier ist ein Bash-Skript.

#!/bin/bash
#
# Put many SVG-graphics on a HTML-page for preview
#   - depends on some command to get the screen resolution, here xdpyinfo
#   - usage: svg-overview.sh [N]
#     N: Number of pictures to put in row. Default is 6
#   - generates a html-file svg-preview.html where the images are 
#     referenced, so loading big svg files will put some load the CPU
#
PFILE="svg-preview.html"
# xdpyinfo is available on linux, probably not on MacOS etc. so you might need
# some other method to evaluate width and height.
dim=$(xdpyinfo | grep dimension | spalten 3)
# dim=1600x1200
w=${dim/x*/}
h=${dim/*x/}  # This comment only fools the code layouter */
perRow=${1:-6}
x=$((w/perRow))
y=$((h/perRow))
echo "Width of screen: $w height: $h per Row: $perRow x=$x y=$y"

head () {
  echo '<html><head><title>'
  pwd
  echo '</title></head><body><table>'
}

count=0

content () {
  for file in *.svg ; do
    if ((count%perRow == 0)) ; then
      echo "<tr><td><a href='$file'><img src='"$file"' alt='$file' width='"$x"' heigth='"$y"'/></a></td>"
    else
      if ((count%perRow != perRow-1)) ; then
        echo "<td><a href='$file'><img src='"$file"' alt='$file' width='"$x"' heigth='"$y"'/></a></td>"
      else
        echo "<td><a href='$file'><img src='"$file"' alt='$file' width='"$x"' heigth='"$y"'/></a></td></tr>"
      fi
    fi
    ((++count))
  done
}

tail () {
  #
  # trailing </tr>, if the number of pictures didn't fill the row
  #
  if (( count%perRow != 0 )) ; then
    echo "</tr>" >>$PFILE
  fi

  echo "</table></body></html>"
}

head > $PFILE
content >> $PFILE
tail >> $PFILE

Die Vorschaudatei wird ohne Hinweis überschrieben.