# [solved]Programm für Bildsortierung+autom. Bildnummerierung

## monade

Der Titel ist etwas mißverständlich, es geht um folgendes: 

Urlaub -> 5 Leute haben mit ihren Digicams Bilder geschossen -> ich will die Bilder der verschiedenen Kameras irgendwie "mergen", d.h. in einem Ordner zusammenfassen und gleichzeitig sollen die Bilder chronologisch durch den Dateinamen, sprich alphabetisch/alphanumerisch, sortiert werden. 

Was ich also im Idealfall suche ist ein Programm, mit dem ich durch Drag&Drop, Hin-und-Herziehen die Reihenfolge der Bilder bestimmen kann und am Ende auf "generate" drücke und das Programm dann nach einem von mir vorgegebenen Muster die Dateien durchnummeriert/benennt.

Wenns so ein Programm gibt, wärs natürlich wahnsinn, ansonsten bin ich auch für andere Lösungen offen  :Smile: . Zur größten Not mach ich es so, dass ich die alten Dateinamen der Bilder in jeweils eine neue Zeile einer Textdatei schreibe (natürlich dann in der richtigen Reihenfolge) und ein Skript drauf anwende.. aber wirklich toll ist das so nicht.Last edited by monade on Mon Sep 04, 2006 6:13 pm; edited 2 times in total

----------

## Kopernikus

Hallo,

also es gibt ein programm das nennt sich Xnview.

Ich benutze dieses Programm selbst und bin wirklich begeistert davon.

Ich glaube ich habe dich nicht ganz richtig verstanden, aber mit Xnview kann man Bilder automatisch durchnummerieren/ordnen lassen.

Außerdem kann man damit auch noch scripts schreiben (ganz leicht) bei denen man dann die Bilder erstmal alle auf eine gemeinsame größe bringt, sie danach nach der reihenfolge umbenennen und dann vllt. noch einen Weißabgleich vornimmt. Ist ja nur ein Beispiel. Man kann die unterschiedlichsten dinge damit machen.

Xnview ist im Portage, also einfach emerge xnview.

Möglicherweise (kommt auf deine Architektur an) musst du vorher noch deine  /etc/portage/package.keywords  editieren, da Xnview (zumindest auf Amd64) masked ist.

Aber es läuft prima und ich hatte noch nie einen Fehler oder gar einen Absturz des Programms.

Kannst dir ja auch erstmal ein paar Screenshots von XnView ansehen. (leider unter Windows gemacht)

Hoffe das hilft.

Regards,

KopernikusLast edited by Kopernikus on Mon Sep 04, 2006 12:46 pm; edited 1 time in total

----------

## l3u

<werbetrommel>

Dafür würde sich ganz nett mein Programm digicamsync eignen: http://www.nasauber.de/downloads/?programm=digicamsync

Das benennt dir die Dateien wie du willst!

</werbetrommel>

----------

## monade

Hmm, also ich glaube ich hab mich wirklich bisschen wirr ausgedrückt. Mal ganz konkret: Ich habe hier einen Ordner mit Bildern von verschiedenen Digikams:

```
#: ls -1 bilderordner/

dsc00109.jpg

dsc00111.jpg

dsc00112.jpg

dsc00113.jpg

dsc00114.jpg

dsc00115.jpg

dsc00116.jpg

nr 007.jpg

nr 008.jpg

nr1 007.jpg

nr1 008.jpg

nr1 015.jpg

nr1 016.jpg

174_7440.jpg

174_7442.jpg

174_7446.jpg

174_7447.jpg

174_7448.jpg

174_7449.jpg

img_4127.jpg

img_4128.jpg

img_4129.jpg

img_4130.jpg

img_4131.jpg

img_4133.jpg

```

In einem 1. Schritt, will ich diese Bilder chronologisch sortieren. Möglichst auf einer graphischen Oberfläche will ich die Bilder durch drag&drop in die richtige Reihenfolge bringen. Also zB 174_7448.jpg einsortieren zwischen dsc00113.jpg und dsc00114.jpg, img_4128.jpg und img_4129.jpg vertauschen usw.

Wenn ich dann die Reihenfolge bestimmt hab, will ich dass die Dateinamen der neuen Reihenfolge entsprechend umbenannt/durchnummeriert werden..(2.Schritt) Alle Klarheiten beseitigt?  :Smile: 

Das $Programm, das ich suche/mir wünsche sollte beide Schritte können.

----------

## think4urs11

Stimmen denn wenigstens die Zeitstempel der Dateien?

Also ist 'Datum dsc00113.jpg' < 'Datum 174_7440.jpg' < 'Datum 174_7449'.jpg < 'Datum dsc00114.jpg'?

----------

## monade

Leider nein, denn zu allem Überfluss sind auch noch im Nachhinein eingescannte Fotos dabei..

----------

## think4urs11

sonstige erkennbare Muster?

z.B. alle img_1234 sind vom Tag X, alle dsc1234 vom Tag Y, alle nr123 vom Tag Z?

So ganz ohne per Programm verwertbares Muster wird es schwierig; mit ist es lediglich eine Frage des richtigen rename-Befehls  :Wink: 

Oder aber du sortierst es erst manuell in eine entsprechende Ordnerstruktur wobei Ordnername='Datum der Aufnahme' und gibst dann diese vorsortierte Liste (mit noch unterschiedlichen Dateinamen) einem Script das allen Files einheitliche Namen verpaßt.

----------

## l3u

Okay, also wenn die Zeitstempel noch gestimmt hätten, dann hätte das digicamsync gekonnt (man muß ja die bilder nur mit cp -p auf nen USB-Stick kopieren, um ne Digitalkamera zu "simulieren"). Wenn die Bilder von ner Kamera kommen, dann kannst du noch per Script in den exif-Headern nachschauen, wann sie gemacht wurden und sie entsprechend umbenennen. Aber wenn eingescannte Bilder dabei sind ... woher will man da wissen, wann sie geschossen wurden?!

----------

## monade

Es geht mir eigentlich auch nicht primär darum sie mit einem Skript chronolgisch anhand des Exif-Timestamps o.ä. umzubennen. Es geht mir primär um ein Programm, mit dem ich Bilder zuerst in eine Reihenfolge bringen kann (ob chronologisch, thematisch was auch immer), und dann, wenn die Reihenfolge bestimmt ist, die Dateinamen entsprechend durchnummerieren kann.

Sowas kann man natürlich nur mit einem GUI-Programm machen (außer man erstellt wie oben gesagt ein eigenes Textfile). 

Trotzdem danke schonmal für eure Bemühungen.

----------

## think4urs11

 *monade wrote:*   

> Es geht mir primär um ein Programm, mit dem ich Bilder zuerst in eine Reihenfolge bringen kann (ob chronologisch, thematisch was auch immer), und dann, wenn die Reihenfolge bestimmt ist, die Dateinamen entsprechend durchnummerieren kann.
> 
> Sowas kann man natürlich nur mit einem GUI-Programm machen (außer man erstellt wie oben gesagt ein eigenes Textfile). 

 

Naja so wie ich das bisher verstehe wirst du um eine manuelle Vorsortierung nicht herumkommen - ob du das nun mit mc machst oder sonst einem Filemanager oder via Kommandozeile ist Geschmackssache. Evtl. ist hier die Kombination Bildbetrachter (mit Thumbnailvorschau)+Kommandozeile auch eine Option.

Woher sollte ein Proggie auch nach Thema sortieren können, soooo doll sind die Bilderkennungsprogramme auch noch nicht. Im besten Fall kannst du da die Landschaftsfotografien Irlands vom pr0n-Kram trennen, anhand der Farben natürlich  :Wink: 

Wenn aber erstmal die gewünschte Reihenfolge 'irgendwie' für ein Programm abfragbar vorliegt (eben z.B. die bereits angesprochene Ordnerstruktur) ist das Umbennen in 'Schema X' relativ einfach per Miniscript machbar.

----------

## l3u

Also chronologisch würde dir folgendes Scriptchen die Dateien (anhand der EXIF-Header) benennen:

```
#!/bin/bash

for filename in *; do

   gen=`exiftime -tg $filename 2>/dev/null`

   if [[ $? == 0 ]]; then

      gen=${gen##*: }

      gen=${gen//:/-}

      gen=${gen/ /--}

   else

      gen=$filename

   fi

   if [[ $gen == $filename ]]; then

      continue 1

   fi

   if [ -e "$gen.jpg" ]; then

      no="2"

   

      while [ -e  "$gen-$no.jpg" ]; do

         no=$((no+1))

      done

      gen="$gen-$no"

      

   fi

   newname="$gen.jpg"

   mv "$filename" "$newname"

done
```

Es werden keine Dateien überschrieben. Sollten zwei Dateien zur selben Sekunde erstellt worden sein, wird eine fortlaufende Nummer angehängt.

Wenn das dann durchgelaufen ist, kann man z. B. sowas machen, um die Dateien mit einer fortlaufenden Nummer zu versehen (braucht man aber im Prinzip dann nicht mehr, da YYYY-MM-DD--HH-MM-SS ohnehin richtig sortiert wird):

```
#!/bin/bash

no=1

for filename in *; do

   num=`printf %04d $no`

   mv "$filename" "$num-$filename"

   no=$((no+1))

done
```

----------

## monade

Grml  :Smile: 

Nur das abschließende _Umbenennen_ soll ja automatisiert sein,  das "in die gewünschte Reihenfolge bringen" will ich ja eben gerade nicht automatisiert machen sondern per Drag&Drop in einem graphischen Programm. Dieses Programm müsste halt dann die neue Reihenfolge zunächst intern irgendwie zwischen-cachen und dann am Ende die Dateinamen entsprechend durchnummerieren.

----------

## monade

@Libby: danke für dein Script, werd ich vermutlich irgendwann in anderem Zusammenhang noch brauchen können. Wobei, macht 

```
jhead -n bild.jpg
```

nicht genau dasselbe  :Razz: 

 *Manpage von jhead wrote:*   

> 
> 
>        -n[format_string]
> 
>               This option causes files to be renamed using the date information from the Exif header "DateTimeOriginal" field. 
> ...

 

----------

## l3u

Da kann ich dir dann auch nicht helfen ;-)

Man könnte natürlich per Perl-FUSE-Modul ein kleines Dateisystem schreiben, das jeder Datei, die reinkommt, eine fortlaufende Nummer verpaßt. Dann müßtest du einfach nur die Dateien in der Reihenfolge, die du haben willst, in den gemounteten Ordner verschieben und hättest deine Reihenfolge. Da es aber erheblich länger dauern würde, so ein Dateisystem zuschreiben, als es gedauert hat, das Script zu schreiben, was die EXIF-Tags ausliest, will ich dir nicht die Freude nehmen, dies selbst zu tun ;-)

Edit:

Blabla. Schon geschriebene Programme verwenden ist was für Weicheier. Sowas schreibt man sich selbst :-P außerdem hab ich jhead bisher noch nicht gekannt ;-)

----------

## monade

Ich fühle mich missverstanden  :Sad: .

Also, letzter Versuch zur clarification:

Hier ein Screenshot von gqview (Bildbetrachter), mit dem ich gerade ziemlich viele Australien-Bilder geladen hab:

http://helpdesk.bera.rus.uni-stuttgart.de/~rusguggi/gqview.png

Nehmen wir an, die Reihenfolge der Bilder in diesem Australien-Ordner, die durch die Dateinamen vorgegeben ist, passt mir nicht. Was ich nun will, ist _mit dem Mauszeiger_ per Drag&Drop die Reihenfolge in der Bilder-Liste, die links zu sehen ist, zu verändern. Wenn mir dann die Reihenfolge passt, sollen die Dateinamen entsprechend neu durchnummeriert werden. Leider geht das mit gqview nicht, deswegen such ich ein Programm, dass genau jenes kann  :Smile: .

edit: ah, okay Libby, du hast es doch richtig verstanden, tschuldige. Ich will das ganze aber als GUI :p.

----------

## l3u

Und dieses GQView kann das nicht?

----------

## monade

 *monade wrote:*   

> Leider geht das mit gqview nicht, deswegen such ich ein Programm, dass genau jenes kann

 

:p. Nein, leider nicht.

----------

## monade

Es gibt ein Programm, das genau das kann:

http://www.tippscout.de/bilder-und-fotos-umbenennen-mit-irfan-view_tipp_2556.html

Allerdings halt für Windows *seufz*.

edit: finally, noch was gefunden: kde-misc/krename kann es! -> solved

----------

## think4urs11

schade, war ich zu langsam  :Smile: 

ich hätte nämliche jetzt gesagt

a) mit gqview nacheinander alle Bilder in der gewünschten Reihenfolge in einen neuen Ordner kopieren

b) ls -rc 'ordner' - gibt die Files in der Reihenfolge aus in der sie in den Ordner kopiert wurden

c) c=1; for i in `ls -rc`; do mv $i bla_$c.jpg; ((c++)); done

----------

## monade

Trotzdem cooler Tip Think4UrS11. Das Problem dabei in der Realität: unter Garantie werd ich mir dann bei Foto n denken: oh, das hätte doch besser vor Foto n-4 gepasst -> Pech gehabt.

----------

## think4urs11

es gilt das gleiche Prinzip wie beim Bomben entschärfen - erst denken, dann fummeln; nur das du nach einem Fehler wieder von vorne anfangen kannst  :Wink: 

----------

## monade

Wenn mir nach 385 Bilder einfällt, dass ich ein Bild doch irgendwo ganz vorne einsortieren wollte, dann wäre es mir glaub ich lieber eine Bombe wär explodiert  :Wink: 

----------

## sirro

 *monade wrote:*   

> Wenn mir nach 385 Bilder einfällt, dass ich ein Bild doch irgendwo ganz vorne einsortieren wollte, dann wäre es mir glaub ich lieber eine Bombe wär explodiert 

 

Einzelne Bilder kannst du ja spaeter noch manuell umbenennen (z.B. bla_2_.jpg um es vor bla_2.jpg einzusortieren) und dann wieder alles neu abzaehlen/umbenennen.

----------

## monade

 *sirro wrote:*   

>  *monade wrote:*   Wenn mir nach 385 Bilder einfällt, dass ich ein Bild doch irgendwo ganz vorne einsortieren wollte, dann wäre es mir glaub ich lieber eine Bombe wär explodiert  
> 
> Einzelne Bilder kannst du ja spaeter noch manuell umbenennen (z.B. bla_2_.jpg um es vor bla_2.jpg einzusortieren) und dann wieder alles neu abzaehlen/umbenennen.

 

War jetzt nicht soo ernst gemeint  :Wink: . Schon klar, das es auch mit manuell umbenennen geht, aber für mich ist das hier aber ein klassisches Beispiel für ein Problem, was mit GUI einfach viel unkomplizierter zu bewerkstelligen ist. Mit krename funktioniert das eigentlich sehr ordentlich, auch wenn es nicht optimal ist, da krename keinen eigenen integrierten Bildbetrachter hat. Nur eine Preview-Option, aber auf diesen kleinen Thumbnails erkennt man zu wenig. (Man kann sogar die Thumbnail-Größe einstellen, aber ab der fürs Erkennen relevanten Größe laggt das ganze dann zu sehr/wird unübersichtlich.)

----------

