WMTS Tilestore von PNG nach JPEG konvertieren

Die Karten bei snowhow-maps basieren auf den Daten von Openstreetmap und werden um Geländeinformationen ergänzt. Das Ergebnis sind über 7 Millionen Karten-Kacheln im PNG-Format für den Alpenraum, die mit Carto-CSS und Mapnik (Kosmtik) erzeugt werden.

Da wir unter anderem Felszeichnung und Schummerung in der Karte verwenden, kann mit dem JPEG-Format bei relativ geringem Qualitätsverlust einiges an Platz gespart werden. Um die mächtige Dateistruktur mit einem Einzeiler von PNG in JPEG zu konvertieren und dabei noch ansprechende Dateinamen zu erhalten, kann man folgendes Kommando im Wurzelverzeichnis des Tilestore verwenden:

find . -type f -name '*.png' -exec bash -c \
  'echo "convert $1" && convert -format jpg \
  -quality 90% -sharpen 0.1 "$1" "${1/\.png/.jpg}"'\
  -- {} \;

/cms/images/hochalterkar.png

Original PNG (256x256px 107 KB)

/cms/images/hochalterkar.jpg

Geschärftes JPG (256x256px 40 KB)

Der Unterschied liegt ca. bei einem Faktor von 2.8, was bei grob 7 Millionen (wenn auch kleinen) Dateien schon einen gehörigen Unterschied macht. Der Trick mit dem Schärfen (-sharpen 0.1) kommt von Mapbox.

See also