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 Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

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

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    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, muß 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 GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.