Ich habe mein damaliges Script ein klein wenig aufgehübscht. [UPDATE 11.01.2012: Version 0.3]
[Update: Version 0.4] hier: https://zockertown.de/s9y/index.php?/archives/1670-Nautilus-Scripting-die-dritte.html
Es kann nun auch mit Leerzeichen in den Dateinamen umgehen.
Im linken Bild ist das Ergebnis meiner Erweiterung zu sehen, es zeigt nun den Fortschritt an und kann gleichzeitig das Bild an Hand der Exif Informationen drehen und es führt ein Branding durch.
Wegen einer Nachfrage eines Bekannten: Wozu das ganze? Nun, es erleichtert die Aufbereitung der Bilder zum Upload. Wenn man Picasaweb o.ä. verwendet, mag das Korrigieren der Ausrichtung unnötig sein, wenn man seinen eigenen Dienst benutzt, der dummerweise das Ausrichten nicht beherrscht, ist das was anderes.
Das Script V0.3 befindet sich im erweiterten Teil dieses Eintrages.
Die Berechnung wurde vereinfacht und das verhalten bei nur einer Datei verbessert.
#!/bin/bash
#
# Titel: resize_auto_orient.sh
# Autor: Bed [@] zockertown.de
# Web: zockertown.de/s9y/
# Version 0.3
# Voraussetzung: Benötigt wird Imagemagick für das Consolentool convert
# und mogrify
# Zweck: skaliert die Bilder auf 1280x1024, wenn im Quellbild die
# Orientierungshinweise intakt sind,
# wird das Bild korrekt gedreht.
# Das skalierte Bild wird mit einer Textnotiz versehen, wenn in
# der Schleife der mogrify disabled wird (durch einfügen des '#')
# wird das Branding nicht durchgeführt.
count=$(/bin/echo $NAUTILUS_SCRIPT_SELECTED_URIS|wc -w)
teil=$[100 / $count ]
teiler=$teil
( for file in $NAUTILUS_SCRIPT_SELECTED_URIS; do
file_name=$(echo $file | sed -e 's/file:\/\///g' -e 's/\%20/\ /g' -e 's/.*\///g')
file_folder=$(echo $file | sed -e 's/file:\/\///g' -e 's/\%20/\ /g' -e "s/$file_name//g")
convert -auto-orient -strip -geometry 1280x1024 -quality 80 "$file_folder/$file_name" "${file_folder}/${file_name}_resized_1280x1024.jpg"
teiler=$[$teiler + $teil]
echo $teiler
mogrify -pointsize 10 -fill gray -gravity SouthWest -draw "text 10,20 'Copyright Bernd Dau'" "${file_folder}/${file_name}_resized_1280x1024.jpg"
echo $teiler
teiler=$[$teiler + $teil]
done ) | (zenity --progress --percentage=$teil --auto-close)
Sollte sich das Problem mit den Leerzeichen nicht mit Anführungszeichen beheben lassen? Also »"$name"« statt »$name«?
Ist eigentlich naheliegend, habe diverse Versuche unternommen, allerdings hat mich die Fortschrittsgeschichte mehr gereizt.
Du bist herzlich eingeladen, es selbst zu probieren
Großartig! Kann man den Copyrighthinweis eventuell noch bildfüllend bekommen? plonk
Har har!
Das Script hat bei mir eine weile gut funktioniert, allerdings werden nun nur noch 2 Bilder verkleinert, egal wie viele vorher markiert wurden. und zwar nur die ersten beiden. Woran kann das liegen? hab ich das Problem exklusiv?
versuche mal das Script "zu Fuß" auszuführen. notfalls mit bash -x resize.sh Oder baue dir ein paar Echos als Debug ein, bei mir gehts immer noch, gerade gestern verwendet.
wie kann ich dem Script die Parameter (sprich die Bilder) im Terminal übergeben? habs versucht mit sh *.jpg hat aber nicht funktioniert
So gehts:
und dann
Ergebnis:
was sagt mir das? P.S.Ich habe das Script nicht verändert.
mach mal type bash ich vermute, du hast noch die ash installiert? Denn die Ausgabe ist ganz anders wie hier.
mea culpa,
man sollte das script dann auch mit bash aufrufen und nicht mit sh... andert dann aber nichts am Ergebnis...leider 2 Bilder werden verkleinert...ende.
Stimmt, habe ich hier auch... ist wohl ein Bug, werde mal gucken
Fehler gefunden, Zeile count=$(/bin/echo $NAUTILUS_SCRIPT_SELECTED_URIS|wc -l) ist falsch! muss count=$(/bin/echo $NAUTILUS_SCRIPT_SELECTED_URIS|wc -w) sein. Ich habe es nun im Quelltext geändert.
ich danke vielmals
Zufällig gerade mitbekommen, das Script hat 10-jähriges! ...und funktioniert immer noch. Was sagt das nun aus? Mindestens, dass die API von Nautilus nicht verändert worden ist