Ein Bild zu beschneiden, ist kein Problem, das kann man mit jedem Bildbearbeitungsprogramm. Wenn es mehr Bilder sind, kann man die Batch-Funktion von IrfanView verwenden. Aber diese Funktion versagt, wenn die Bilder nicht identische Auflösung haben, weil Irfanview nur auf eine feste Pixelzahl beschneiden kann aber nicht prozentual.

In meiner Anwendung sollten 100 Bilder auf der Breitseite unverändert bleiben und die Höhe sollte auf 98,5% zugeschnitten werden. Das funktioniert nur mit ImageMagick.

Um die Funktionalität von ImageMagic zu beschreiben, dazu bedarf es viel Zeit. Sich aber ein Detail wie dieses Bilderbeschneiden herauszugreifen, ist kein so großes Problem.

Voraussetzung: ImageMagick am eigenen Rechner installiert und der Ordner der ausführbaren Dateien ist im Pfad.

Zuerst testet man das grundlegende Kommando an einer Datei 001.jpg. Nach einigen Fehlversuchen stellt sich folgende Schreibweise als die richtige heraus:

s:\desktop\bilder>convert -crop 100%x98.5% 001.jpg c-001.jpg

Zweckmäßigerweise sind die Bilder von 001.jpg bis 100.jpg nummeriert. Durch das Voranstellen des Buchstabens "c-" kann man die verkleinerten Bilder besser von den Originalen trennen.

Wir brauchen also ein Programm, welches das Kommando 100x ausführt, jeweils mit einem anderen Index. Wir verwenden Powershell, das ist extrem einfach. Für die Ausführung eines DOS-Kommandos in PowerShell verwendet man den Befehl Invoke-Expression und weil der Befehl selbst seinerseits aus mehreren Teilen besteht, muss der Befehl unter Anführungszeichen gestellt werden. Daher lautet der Befehl in PowerShell:

PS s:\desktop\bilder>Invoke-Expression 'convert -crop 100%x98.5% 001.jpg c-001.jpg'

Jetzt benötigt es eine Schleife und die funktioniert so:

for ($i=1; $i -le 100; $i++)
{
    $a = $i
     if ($i -lt 10) { $a = "00"+$a }
     elseif ($i -lt 100) {$a = "0"+$a }
     $command = 'convert -crop 100%x98.5% '+$a+'.jpg c'+$a+'.jpg'
     Invoke-Expression $command
}

Die if-elseif-Konstruktion wird benötigt, um die führenden Nullen korrekt aufzufüllen. Das Programm nennen wir crop.ps1. Aufgerufen wird es entweder aus der Programmierumgebung (mein Favorit ist PowerGUI Script Editor) oder über Kommandozeile als:

s:\desktop\bilder>powershell crop.ps1

Das Programm erledigt die Aufgabe in kurzer Zeit und das Skript kann man bei späteren, ähnlichen Aufgaben weiterverwenden.

Links

 

 

 

Franz Fiala

Präsident Clubcomputer / Herausgeber PCNEWS bei ClubComputer.at
Franz ist pensionierter HTL Lehrer (TGM), Präsident von ClubComputer, Herausgeber der Clubzeitung PCNEWS und betreut unser Clubtelefon und Internet Support. Er ist leidenschaftlicher Rapid Wien Fan.

Letzte Artikel von Franz Fiala (Alle anzeigen)