Mir war heute aufgefallen, dass die PNG-Dateien, die aus hochgeladenen Vektorgrafiken für verschiedene Größen erzeugt wurden, eine sehr schlechte Qualität hatten. Die Vermutung war zunächst, dass das per Voreinstellung von MediaWiki verwendete ImageMagick nicht auf dem System vorhanden sei und stattdessen ein qualitativ schlechter Fallback genutzt würde. Was genau bei welcher Einstellung aufgerufen wird, kann man hier sehen.
Um nachvollziehen zu können, ob alles richtig läuft, wurde die folgende Endlosschleife ausgeführt:
while true; do ps aux | grep convert ; sleep 0.2; done
Dann wurde die Erzeugung einer neuen Grafik erzwungen, indem die SVG-Datei eingebunden wurde mit der Festlegung einer bisher noch nicht vorhandenen Größe, z. B. 400 Pixel; dabei tauchte die entsprechende Zeile auf; convert (aus dem ImageMagick-Paket) wurde wie folgt aufgerufen:
convert -background white -thumbnail 800x282! /path/to/file.svg PNG:/path/to/output.png
Beispiel mit ImageMagick
Das Ergebnis der Konvertierung von der Datei Publicdomain.svg sieht so aus:
Ich wollte nicht glauben, dass das wirklich sein kann und habe das auf dem Rechner zuhause nachvollzogen; dort sieht es genauso aus.
Wieso wird das als Voreinstellung verwendet?
Lösung
Wikipedia verwendet statt ImageMagick den Converter rsvg; um diesen auf einem aktuellen Debian stable nutzen zu können, installiert man das Paket „librsvg2-bin“:
apt-get install librsvg2-bin
Es werden eine Menge Abhängigkeiten mitinstalliert.
Danach steht das Binary „rsvg“ zur Verfügung, welches ein Symlink auf „rsvg-convert“ ist. Nun ändert man die Variable „$wgSVGConverter“ in der Datei LocalSettings.php auf den Wert „rsvg“ um.
Danach wurden im Verzeichnis images/thumb der MediaWiki-Installation alle Dateien des Musters „*svg*png“ im Namen gelöscht. Sobald man eine Seite mit solchen Dateien speichert, werden diese neu erzeugt, siehe hier.
\o/
Passt :)
Kommentare
Bisher gibt es hier keine Kommentare.
Kommentar oder Anmerkung für diesen Blogbeitrag
Öffentlicher Kommentar per E-Mail: Hier klicken
Nicht öffentliche Anmerkung per E-Mail: Hier klicken
Sonstige Kontaktaufnahme: Kontakt