Verkleinern von Bildern mit Ruby und Imagemagick

Vor kurzem hatte ich das Bedürfnis Bilder automatisiert, mit Hilfe eines Ruby-Scripts, zu verkleinern. Dieses Script sollte zudem ohne Änderungen sowohl auf Linux als auch auf Windows lauffähig sein.

Fuer diese Aufgabe ist Imagemagick natürlich ein super Werkzeug, da man es auch als Bibliothek von Ruby aus nutzen kann und auch für Windows verfuegbar ist. Unter Windows ist hierfür eine Installation von Ruby, sowie die Installation von Imagemagick und dem passenden RMagick Ruby-Gem notwendig. Unter Linux reicht es Imagamagick und Ruby mit dem Paketmanager seiner Wahl zu installieren und mittels “gem install rmagick” das Gem zu installieren.

Der eigentliche Code gestaltet sich relativ simpel. Prinzipiell lässt sich ein Bild mit wenigen Anweisungen verkleinern:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env ruby</p>

require 'rubygems'
require 'RMagick'

@debug = true

def resize\_image(file)
 puts "let's resize #{file} ..." if @debug
 img = Magick::Image::read(file).first
 img.resize\_to\_fit(1024, 1024)
 img.write(file)
 puts "resizing of #{file} successful" if @debug
end

Die Methode resize_to_fit() sorgt hier für das Verkleinern auf bestimmte Maximalwerte in Länge und Breite. Weiteres erfährt man aus der Doku.