Bilder verkleinern

Im Beitrag „Bilder für Diashow kopieren“ wurden Bilder aus vielen Einzelordnern in einem gemeinsamen Dia-Ordner zusammengefasst. Dabei wurde die Originalgröße der Bilder nicht verändert. Betrachtet man die Bilder aber auf einem Fernseher, ist die volle Auflösung nicht nötig, und man kann sie auf HD-Auflösung von 1920×1080 reduzieren.

Es gibt für die Verkleinerung zwei Möglichkeiten:

  • Kommandozeilenprogramm ImageMagick
  • Bildbearbeitungsprogramm mit Batch-Funktion (z.B. IrfanView)

Verkleinerung mit ImageMagick

ImageMagick kann die Bilder im Zuge eines Skripts automatisch verkleinern. Voraussetzung ist, dass ImageMagick am PC installiert ist.

Ein Bild verkleinern

Das Bild ist am Desktop, convert ist eines von vielen Kommandos von IrfanVIew.

PfadS:\onedrive\desktop\pdorf.jpg
Bildgröße1.488 kB
Auflösung4080 px x 3072 px
S:\onedrive\desktop>convert pdorf.jpg -resize 1920x1080 pdorf-1920.jpg

oder mit absoluten Pfaden:

convert S:\onedrive\desktop\pdorf.jpg -resize 1920x1080 S:\onedrive\desktop\pdorf-1920.jpg
PfadS:\onedrive\desktop\pdorf-1920.jpg
Bildgröße316 kB
Auflösung1434 px x 1080 px

Man sieht, dass das Bild bei der Verkleinerung die Proportionen beibehält und auf die Bildhöhe von 1080 Pixel verkleinert wird.

Bilder in einem Ordner verkleinern

Um alle Bilder in einem Ordner zu verkleinern, benötigt man ein PowerShell-Skript, welches alle Dateien in dem Ordner der Reihe nach bearbeitet. Wenn der Name der Zieldatei gleich mit der Quelldatei ist, wird das Bild überschrieben. Im Falle der Bilder einer Diashow kann man das Original ruhig überschreiben. Sollte etwas nicht passen, kann man die Bilder jederzeit aus den Originalen wiederherstellen.

Um die Kommandozeile in einem PowerShell-Skript aufrufen zu können, benötigt man das Kommando Invoke-Expression.

Invoke-Expression 'convert pdorf.jpg -resize 1920x1080 pdorf-1920.jpg'

Ersetzt man den Bildnamen durch eine Variable, verändert sich das Kommando wie folgt:

$Image = "S:\onedrive\desktop\pdorf.jpg"
Invoke-Expression "convert $Image -resize 1920x1080 $Image"

Das doppelte Anführungszeichen in dem Ausdruck ist wichtig, weil damit die eingesetzten Variablen $Image mit ihrem Wert eingesetzt werden.

Das folgende Programm verändert die Dateigröße aller Bilder im Verzeichnis $Path, sodass die Bilder in den Rahmen passen, der durch das Rechteck 1920*1080 Pixel begrenzt ist.

Clear-Host
$Path = "S:\OneDrive\Chronik\2020=2029\2022\2022 diashow"
$Images = Get-ChildItem $Path -Attributes Archive
$i = 0
foreach ($Image in $Images) {
    $ImagePath = "'" + $Image.FullName + "'"
    $Expression = "convert $ImagePath -resize 1920x1080 $ImagePath"
    Invoke-Expression $Expression
    $i++
    Write-Host $i -NoNewline
}

Bildvolumen vor der Verkleinerung: 587 MB
Bildvolumen nach der Verkleinerung: 116 MB

Thumbnails anlegen

In Galerien werden Bilder in einer Übersicht in einem Raster von Vorschaubildern angezeigt. Bei einigen wenigen Bildern, könnte man die auf Fernsehbildgröße verkleinerten Bilder auch für diese Vorschau verwenden. Bei vielen Bildern und um Übertragungszeit zu sparen, werden aber die bereits verkleinerten Bilder noch einmal zu Vorschaubildern („Thumbnails“) verkleinert. Das Programm ist im Prinzip dasselbe, nur werden die Bilder nicht überschrieben, sondern unter einem geänderten Namen – etwa durch Anhängen von „-thumb“ gespeichert.

Clear-Host
$Path = "s:\OneDrive\desktop\2022\"
$Images = Get-ChildItem $Path -Attributes Archive
$i = 0
foreach ($Image in $Images) {
    $ImagePath = "'" + $Image.FullName + "'"
    $ImagePathThumb = $ImagePath.Replace($Image.Extension, "-thumb"+$Image.Extension)
    $Expression = "convert $ImagePath -resize 500x500 $ImagePathThumb"
    Invoke-Expression $Expression
    $i++
    Write-Host " $i" -NoNewline
    if (($i % 10) -eq 0) { Write-Host }
}

Verkleinerung mit IrfanView

Mit IrfanView muss man nicht programmieren, es gibt eine komfortable Bedienungsoberfläche.

(1) IrfanView -> File -> Bath Conversion Rename -> Batch conversion
(2) Output-Format: Jpg
(3) Use advanced options: Yes
(4) Advanced: klick
(5) CROP: No
(6) RESIZE: Yes
(7) Set one or both sides to: Width: 1920, Height: 1080
(8) Overwrite existing files: Yes
(9) OK
(10) Dateiname: S:\OneDrive\Chronik\2020=2029\2022\2022 diashow
(11) Add All: klick
(12) Use Current (‚look in‘) folder: klick
(13) Start Batch: Klick

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)

Zur Werkzeugleiste springen