Bilder automatisch verkleinern unter Linux mit imagemagick

Hallo Leute,

heute geht's um Bilder und wie ich sie verkleinern kann. Die meisten Bilder für meine Webseiten habe ich bisher manuell bearbeitet und verkleinert. Manchmal vergesse ich es allerdings. Ich habe mir einen Test geschrieben, der prüft, dass keine Bilder über 2MB auf meiner Webseite landen und eines Tages sprang dieser Test tatsächlich an und ließ die Pipeline fehlschlagen. 😱

Da habe ich mich im ersten Moment gefreut, dass der Test funktioniert. 🥳 Im nächsten Moment dann geärgert 😖, weil ich jetzt manuell ein Bild verkleinern musste, dass keine grafische Perfektion benötigt, sondern einfach nur geschrumpft werden sollte. 🙄

Ich habe folgenden Befehl für mich festgelegt, mit dem ich ein Bild schnell über die Kommandozeile verkleinere und die Qualität herunterschraube:

convert bild.png \
  -sampling-factor 4:2:0 \
  -strip \
  -quality 80 \
  -interlace JPEG \
  -colorspace RGB \
  -resize 600x600\> \
  verkleinertes-bild.jpg

Das verkleinerte Bild wird maximal 600px hoch und breit sein. Das Seitenverhältnis bleibt bestehen. Außerdem wird die Qualitätseinstellung für JPEG auf 80 gesetzt und der sampling-factor reduziert die Dateigröße noch weiter. convert ist Teil von ImageMagick und lässt sich auf nahezu allen Systemen installieren.

Nun überlege ich diesen Schritt in meine Build-Pipeline einzubauen, so dass ich niemals mehr große Bilder hochlade. Sobald ich damit Erfahrungen gesammelt habe, lasse ich es euch wissen.

social