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

  • Precision Time Protocol

    15.10.2021

    Durch meinen Neffen wurde ich neulich auf ein Video im Internet aufmerksam gemacht, aus dem ich von der Existenz des Protokolls PTP oder Precision Time Protocol erfuhr. Hier einige Gedanken dazu

    Weiterlesen

Neueste Artikel

  • Präsentation zum Thema: Certificate and Signature Use Cases

    Eine Präsentation, die einige der Gesichtspunkte beleuchtet, die man beachten sollte, wenn man sich für elektronische Signaturen und Zertifikate in der eigenen Anwendung entscheidet. Weiterhin werden Möglichkeiten zur Benutzung aufgezeigt, die etwas weiter vom Mainstream entfernt sind.

    Weiterlesen
  • LinkCollections 2026 XI

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

    Weiterlesen
  • HexInspector Komponente in Java

    Als ich diese Lösung zur Darstellunbg und Analyse von beliebigen strukturierten Daten fand (das Beispiel erledigt das für ASN.1 kodierte Informationen), fasste ich den Entschluss, dass ich eine entsprechende Komponente in Java realisieren wollte.

    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.