• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] ImageMagic - mehrere Verz. auf Web optimieren

Catull

Hacker
Hallo,
ich habe das Problem, dass ich ca. 20 Verzeichnisse mit JPGs habe.

Code:
Oberverzeichnis  |
                |__ Unterverzeichnis 1
                |__ Unterverzeichnis 2
                |__ Unterverzeichnis 3
                |__ Unterverzeichnis n
Die JPGs liegen sowohl gross- als auch klein geschrieben vor (.jpg, .JPG).

Was ich erreichen will
=============
Ich haette die Datei-Endungen gerne einheitlich klein.
Die Bilder sollten zudem einheitlich auf 640x480 gebracht und fuers Web optimiert werden (Groesse).

Ich kenne zwar Kim - benutze es auch gerne - wuerde das Ganze aber lieber ´in einem Rutsch´ von der Kommandozeile aus erledigen koennen.
Die SuFu hat mich auf ImageMagic gebracht. Das wurde installiert und funzt auch. Leider verlaesst mich jetzt ein wenig der Ehrgeiz, mich da durch die einzelnen Funktionsbeschreibungen in --help durchzuhangeln.

Also, falls jemand Zeit und Musse hat, waere ich fuer einen Tip dankbar ;-)

Gruss

Catull
 

ginka

Member
Alle Aktionen führst du direkt in deinem 'Oberverzeichnis' stehend aus.

Wenn du auf deinem Rechner einen Perl-Interpreter installiert hast, kannst du mit folgendem Kommando alle Dateien mit großen Endungen 'JPG' umbenennen in '[altername].jpg':
Code:
find . -name '*.JPG' -exec perl -e 'rename("{}", substr("{}", 0, length("{}")-3)."jpg" )' \;

Ich weiß - es sieht echt wüst aus... funzt aber. Probiere das Ganze vorher auf einer Kopie von 'Oberverzeichnis', wenn du dir nicht sicher bist... :wink:

Danach skalierst du deine Bilder mit ImageMagick - gib' z.B. folgendes ein:

Code:
find . -name '*.jpg' -exec convert -verbose -quality 90 "{}" -scale 640x640 "{}" \;

Das erzeugt Bilder mit 90% Qualität vom Original deren längere Kante 640 Pixel lang ist.

Achtung - deine Originalbilder werden dabei mit der verkleinerten Version überschrieben!

Gruß
ginka
 

cero

Guru
Zum Skalieren von Bildern mit ImageMagick habe ich auch etwas geschrieben:
http://www.linux-club.de/ftopic46912.html
 
OP
C

Catull

Hacker
Hi ginka
Dank fuer die Antwort.
ginka schrieb:
Wenn du auf deinem Rechner einen Perl-Interpreter installiert hast, kannst du mit folgendem Kommando alle Dateien mit großen Endungen 'JPG' umbenennen in '[altername].jpg':
Code:
find . -name '*.JPG' -exec perl -e 'rename("{}", substr("{}", 0, length("{}")-3)."jpg" )' \;
Das habe ich sogar ;-)
Muss allerdings zugeben, dass ich 0 Kenntnis von Perl habe, abgesehen davon, dass ich frueher mal fertige Webscripts ´erweiterfrickelt´ habe.
Ich habe derweil einen eigenen Thread fuer das ´Massen-Umbenennen´ bei den Konsole-Hengsten gestartet.
Da kamen u.a. einige sehr schoene (kurze) Loesungen bei rueber. In der Tat, es gibt unter Linux immer mehrere Wege ans Ziel zu gelangen.

Deine Anleitung zum Skalieren probier ich spaeter aus. Melde mich dann mit den Ergebnissen

@ cero
Danke fur den Link. Ich les es durch und schau was ich anwenden kann.
 

ginka

Member
... gerne! :D

Hab' mir den neuen Thread gerade durchgesehen und dabei auch wieder was gelernt, nämlich "rename". Den kann man auch wieder wunderbar mit find zusammenbauen...... und zwar einfacher und kürzer als meine obige "Perl-Variante". Die neue Lösungsvariante hab' ich bei dem anderen Thread hinzugefügt.

Gruß
ginka
 

beleg

Member
Du brauchst aber garnicht die Bilder von *.JPG nach *.jpg umbenennen.
Es geht auch
Code:
for bild in *.[jJ][pP][gG]
do
convert "$bild" -resize 640x640 -quality 80 "$bild"
done
Dann spielt es keine Rolle, ob da jpg oder JPG steht.
 
Oben