Samstag, November 19, 2011
- malenki at 19:55 in Software
At wikimedia commons I was hinted that lossless cropping of jpg files exist. Strange it didn’t come to my mind searching for something like that myself.
But the recommended tool cropgui has an at least unaesthetic flaw: the cropped image contains no EXIF data anymore.
Having had a second look at the site of the author I guessed he ran into the same ugly behaviour of jpegtran tools I hit myself some time ago:
Jpegtran discards all EXIF data if it is not explicitly told to keep them, which happens with the switch “-copy all”.
To fix this issue at the cropgui-script (until the author does it himself) just do the following:
in cropgui.py, replace the line
task.add([’nice’, ‘jpegtran’, ‘-crop’, cropspec, image_name], target)
with
task.add([’nice’, ‘jpegtran’, ‘-copy’, ‘all’, ‘-crop’, cropspec, image_name], target)
Das unten erwähnte renrot ändert nur das Exif-Orientation-Flag, das angibt, wie herum das Bild angezeigt werden soll. Da nicht alle Programme dieses Flag unterstützen, sind Fehler vorprogrammiert.
Als ich mich etwas näher mit den Tools zum Drehen von Bildern befasste, stieß ich auf folgende Zeile in der Manpage von jpegtran
The default behavior is -copy comments.
(Note: in IJG releases v6 and v6a,
jpegtran always did the equivalent of -copy none.)
Das heißt, dass nur die Kommentare aus den Exif-Daten in das bearbeitete Bild übernommen werden, alles andere geht verloren. Mit -copy all bleiben alle Daten erhalten. Es ist ein Unding, dass man erwartetes Verhalten (nicht löschen/ kaputtmachen) mit einem Schalter erzwingen muss. Ich muss das mal als Bug filen. Ich weiß nicht mehr, was mich bisher davon abgehalten hat. Teilweise war sicherlich der Umstand schuld, dass in der manpage keine Kontaktadresse steht.
Jetzt verwende ich folgendes Script:
#!/bin/sh<br>
#rotate images 270°<br>
for i;<br>
do jpegtran -copy all -rotate 270 "$i" > "$i"_; rm -f "$i";mv "$i"_ "$i" ;<br>
done
Heute durfte ich feststellen, dass Gqview in Debian nicht mehr maintained wird. Wenn man jetzt gqview per apt installieren möchte, wird geeqie installiert und ein Paket, das im Prinzip ein alias für Gqview=Geeqie setzt. Man kann Gqview von Sourceforge herunterladen und per Alien installieren - das klappt aber nur, wenn Geeqie nicht installiert ist. Wenn man erst Gqview installiert und danach Geeqie per apt, wird Gqview wieder entfernt. Großartig!
Bisher war Gqview der Bildbetrachter, den ich am meisten benutzte - auch, um jpegs zu drehen, die ich hochkant oder verkehrt herum aufgenommen hatte. Geeqie ist ganz nett, etwas flotter als GQview und hatte früher™ mal eine recht benutzbare Funktion, um jpeg-Dateien ohne Qualitätsverlsute zu drehen. Jetzt kann es im Auslieferungszustand (sidux/Debian sid) Bilder nur zum Anschauen rotieren, das Bild aber nicht in diesem Zustand speichern - trotz des Menüpunktes “Apply orientation to the image content”.
convert -rotate
komprimiert Bilder erneut,
jpegtran -rotate
zerstört noch immer die Exif-Daten.
[update] Falsch, das war PEBKAC, siehe auch weiter oben.[/update]
mEDI_S in irc://irc.oftc.org/osm-de wies mich dankenswerterweise auf das Programm renrot hin. Früher™ hatte ich das schon einmal kurz in den Fingern, aber aus irgendwelchen Gründen nicht weiter beachtet.
Die Lösung für das Problem sieht wie folgt aus:
#! /bin/sh<br>
#rotate images 270°<br>
for i; do <br>
renrot --only-orientation --no-rename --no-trim -r 270 "$i" ;<br>
done
Das Script wird ausführbar gemacht und als rot_270 in einem Verzeichnis gespeichert, das im PATH= liegt. Für das Rotieren um 90° und 180° erstellt man zwei weitere, entsprechend angepasste Scripte. Die Rotierfunktion kann man jetzt schon z.B. in Thunar über die Öffnen-Mit-Funktion aufrufen.
Um es per Hotkey in Geeqie zu benutzen, ging ich wie folgt vor:
Menü: Bearbeiten => Preferences => Editoren einrichten => Neu
In das Feld wird
[Desktop Entry]
Name=rot_270<br>
Comment=rotate image 270°<br>
Exec=rot_270 %f<br>
Terminal=false<br>
Type=Application<br>
Categories=Graphics;2DGraphics;<br>
MimeType=image/jpeg;image/jpg;
eingefügt und als rot_270.desktop gespeichert, für 180° und 90° benutzt man entsprechend angepasste Einträge.
Jetzt wird Menü: Bearbeiten => Preferences => Einstellungen => Reiter Tastatur geöffnet. In der linken Spalte findet man die neuen Aktionen rot_270, rot_180 und rot_90. Die versieht man mit den entsprechenden Tastaturkürzeln - ich habe ctrl+left, ctrl+right und ctrl+up benutzt. Danach speichern und man kann in geeqie jpg-Bilder vernünftig drehen. *seufz*
Die für das Rotieren von Bildern zuständigen Strings in ~/.geeqie/geeqierc versuchte ich erfolglos mit renrot-Befehlen anzupassen. Entweder bin ich unfähig oder Geeqie ruft die Befehle verkrüppelt auf…
Verbesserter Arbeitsablauf für die Urlaubsbilder bis zum Hochladen der Fotogalerie
Neudeutsch: Optimierter Workflow bis zum Upload der Gallery =)
Dies ist mehr eine Notiz an mich selbst, aber vielleicht nützt es dem einen oder anderen.
# Aussortieren verwackelter und wenig aussagekräftiger Bilder und Benennen nach Ort/Ereignis
# Verlustfreies rotieren mit einem kleinen Script - lässt sich gut in Kontextmenüs verwenden
# Leerzeichen durch Unterstriche ersetzen - bzw dies rückgängig machen - rekursiv
renamexm -R -s/"_"/" "/g *
renamexm -R -s/" "/"_"/g *
# die Beschreibungen von Namen des Bildes in den Exif-Tag schreiben - rekursiv
find -type f -name *.jpg -exec <a href="=http://www.malenki.ch/soft/exiv_user_comment">exiv_user_comment</a> {} ;
# Alle jpgs unterhalb ./start/dir verkleinern - rekursiv
find ./start/dir -name "*.jpg" -exec mogrify -resize x768 {} ;
# Video-Konvertierungsscript durch alle Ordner laufen lassen
# Das Script habe ich hier geklaut und dann schamlos verstümmelt.
find -type f -name *.avi -exec <a href="http://www.malenki.ch/soft/video-convert">video-convert</a> {} ;
# Videos aneinander hängen
mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi
#Ergänzung: Alle Nicht-ascii-Zeichen ersetzen, um die Bilder besser verlinken zu können.
renamexm -R -s/[^a-zA-Z_.0-9]//rg * -t
#Galerie erstellen
llgal --tx 200 --ty 120 --ct --ctf %H:%M --cc exif -u --title "Radtour Sommer 2008" -R --Rl -A --www --sy 640
Die Galerie mit dem mc bzw dem FTP-Client der Wahl hochladen, fertig.
Zuletzt bearbeitet am 12.04.2011
das MPD-Info-Script von 0.4.7 auf 0.4.8 gebracht: aktuell: MPD-Info-Script0.4.9
# changes:
# 0.4.8 added "[paused]" in announce-section
(and removed some bugs which happened to
appear in announcing in succession)
# added "mpd pause" in playback control for completeness
# completed announcing tags (notag, stream) for the release-version