ubuntuusers.de

Imagemagick-Skript: Bilder verkleinern - Hoch/Querformat beachten

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

mRiesbeck

Anmeldungsdatum:
28. Juli 2008

Beiträge: 307

Hallo,

weiss nicht, ob ich hier oder unter "Programme bedienen" richtiger wäre. Versuch's mal hier ☺

Mit folgendem Skript verkleinere ich in Nautilus mehrere selektierte Bilder auf eine fixe Grösse.

Wie kann ich im Skript abfragen, ob das aktuell bearbeitete Bild im Hoch- oder Querformat vorliegt ?

Also wenn Bild höher als breit dann mache dies... sonst das.

Dann könnte ich Hochformat 533x800 und Querformat auf 990x660 einstellen und bräuchte nicht mehr 2 Skripte.

#!/bin/bash

while [ $# -gt 0 ]; do
  sourcefile=$1
  targetfile=`echo "$sourcefile" | sed 's/\.\w*$/_web.jpg/'`
  convert -resize 990x660 -quality 95 "$sourcefile" "$targetfile"
shift
done

Gruss Mike

PS: Habe nur echte Hochformatbilder... keine Ausrichtungs-ExifTags.

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

oxe1976

Anmeldungsdatum:
5. Februar 2008

Beiträge: 759

hi,

das kann man wunderbar mit identify abfragen (auch ImageMagick), z.B. so:

#!/bin/sh

height=`identify -format "%h" bild.jpg`
width=`identify -format "%w" bild.jpg`

if [ $height -lt $width ] ; then
   echo " $height ist kleiner "
else 
   echo " $width ist kleiner "
fi

PS: Nicht sonderlich ausgetestet und integrieren in Dein script darfst du selber ☺

Gruss

mRiesbeck

(Themenstarter)

Anmeldungsdatum:
28. Juli 2008

Beiträge: 307

oxe1976 schrieb:

hi,

das kann man wunderbar mit identify abfragen (auch ImageMagick), z.B. so:

Sauber !! Danke ☺

Hier dann mal das fertige Skript, zu welchem ich eine Nautilus-Action angelegt habe.

#!/bin/bash
while [ $# -gt 0 ]; do
  sourcefile=$1
  targetfile=`echo "$sourcefile" | sed 's/\.\w*$/_web.jpg/'`
  height=`identify -format "%h" "$sourcefile"`
  width=`identify -format "%w" "$sourcefile"`

  echo "Bearbeite Datei $sourcefile"

  if [ $height -lt $width ] ; then
    convert -resize 900x600 -quality 95 -bordercolor Black -border 1 -bordercolor White -border 20 "$sourcefile" "$targetfile"
    else 
    convert -resize 533x800 -quality 95 -bordercolor Black -border 1 -bordercolor White -border 20 "$sourcefile" "$targetfile"
  fi  

shift
done

Gruss Mike

Bilder
Antworten |