SVG -> Icon II

vorhergehende Artikel in: Java GUI
08.01.2016

Ich habe das Werkzeug zum automatischen Erzeugen von Bitmap-Icons in verschiedenen Größen aus einem SVG-Master weiter verfeinert: es ist nun möglich, Teile der Graphik beim Erstellen der Bitmaps auszublenden.

Das Werkzeug zum automatischen Erzeugen von Bitmap-Icons hat bereits eine Verbesserung gegenüber anderen vergleichbaren Lösungen, indem Strichstärken, die bei zu starker Verkleinerung verlorengehen würden, automatisch erhöht werden, so daß sie in der Zielauflösung mindestens einen Pixel breit sind.

Dieses Feature kann aber nur bedingt die Qualitätseinbußen beim Rendern für kleine Auflösungen aufhalten. Beispielsweise funktioniert es nicht, wenn eine Kontur nicht über einen Strich mit festgelegter Strichstärke definiert wird, sondern über die Überlagerung zweier Konturen. Daher wurde das Werkzeug nochmals erweitert und bietet nun selektives Rendering an:

Die einzelnen Komponenten einer SVG-Graphik können eine Beschreibung beinhalten. Diese Beschreibung wird von manchen Betrachtern zum Beispiel genutzt, um Tooltips zu erstellen, wenn man mit der Maus über dem zugehörigen Graphikobjekt verweilt.

Das Werkzeug zur Erstellung vom Bitmaps aus SVG-Vorlagen benutzt diese Beschreibungen, um festzulegen, welche Komponenten gerendert werden sollen: Elemente, die keinen beschreibenden Text beinhalten, werden immer gerendert. Elemente, die einen solchen beinhalten, werden auf der jeweiligen Auflösung nur dann gerendert, wenn in der Beschreibung der Text $notxx$ nicht vorkommt (xx steht dabei für die Auflösung). Beispielsweise würde in einer Graphik ein Graphikobjekt mit der Beschreibung $not48$ auf der Auflösungsstufe 48x48 Pixel nicht in der Bitmap zu sehen sein.

Hier sind einige Beispiele dafür dargestellt: Aus dem verlinkten SVG-Graphik wurden die drei PNG-Graphiken auf den Auflösungen 24x24, 32x32 und 48x48 Pixel in einem Arbeitsgang erzeugt. Zum Vergleich ist auch die Bitmap-Graphik angegeben, die andere Werkzeuge rendern würden.

Lizenz
24x24 Pixel
32x32 Pixel
48x48 Pixel
Ohne bedingtes Rendering
Ausgangsdatei

Aktualisierung vom 8. Januar 2016

Die für den Artikel über die Icons zur graphischen Dokumentation von Serverlandschaften gezeigten Icons wurden als erste mit einer neuen Erweiterung dieser Anwendung produziert: Man kann jetzt die Embleme für Icons in der gleichen Basisdatei als Layer verwalten, der Rasterizer erkennt dies und erstellt Bitmaps für jede Variante, indem er hintereinander jeweils eins der Embleme auf sichtbar schaltet.

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Generator-Framework in JMeter integriert

    27.09.2020

    Nachdem ich neulich zwei neue Container für Software-Tests zu meinem Docker-Zoo hinzugefügt habe ist es nun an der Zeit, ein weiteres Hilfsmittel für Software-Tests mit JMeter vorzustellen

    Weiterlesen

Neueste Artikel

  • Generated Key Management in der sQLshell

    Ich habe an einem neuen Feature der sQLshell gearbeitet, das die manuelle Dateiengabe extrem vereinfacht.

    Weiterlesen
  • LinkCollections 2025 X

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2025 folgt hier gleich die nächste:

    Weiterlesen
  • GUI zur Logback Konfiguration

    Ich habe mich immer wieder darüber geärgert, wenn ich gerade mitten im Entwickeln neuer Features bin und irgendetwas nicht klappt. Dann wollte ich versuchen, herauszufinden, was der Grund dafür sein könnte und natürlich ist das Logging für die eine interessante Klasse gerade deaktiviert. Also: Konfigurationsdatei fürs Logging editieren, speichern, Anwendung neu starten... Damit sollte endlich Schluss ein!

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.