amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Amiga, AmigaOS 4 > Dateidatum -> Dateikommentar [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

07.01.2006, 03:25 Uhr

Indy
Posts: 538
Nutzer
Guten Morgen... :look:

Um einer Unzulänglichkeit in "PhotoAlbum 1.0" (aus dem 3CaDo-Paket) abzuhelfen, suche ich nach einer Möglichkeit, das Dateidatum mehrerer JPEG-Dateien (von einer DigiCam) in deren jeweiliges Dateikommentarfeld zu schreiben.

Hat jemand eine Idee, wie man das per Shell-Script lösen könnte ?


Mit Dank vorab...


Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 09:59 Uhr

DaxB
Posts: 1421
Nutzer
@Indy:
Guck doch erst mal ob die "Unzulänglichkeit" in PhotoAlbum 6.6 noch vorhanden ist.

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 11:41 Uhr

thomas
Posts: 7717
Nutzer
@DaxB:
Die beiden PhotoAlbums haben nichts miteinander zu tun. Der idiotische Autor von 3CaDo hat sich nur eines existierenden Namens bedient ohne vorher zu fragen.


@Indy:
Versuchs mal so:

list >ram:hugo work:bilder/#?.jpg lformat="filenote *"%p%n*" %d %t"
execute ram:hugo

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 12:08 Uhr

Palgucker
Posts: 1342
Nutzer
@ Thomas

Ich habe eigendlich mehr daran gedacht, das Indy mehr am Aufnahmedatum interessiert ist, wie es im Exif-Header festgeschrieben ist, also z.B
"Date Time Orginal" oder "Date Time Digitizet.
Mit jhead (Aminet) müsste man dieses auslesen können.

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 16:41 Uhr

Indy
Posts: 538
Nutzer
@thomas

Werde Deinen Tip mal versuchen.
Danke Thomas.

@Palgucker

Ja, jhead kann zwar einiges - habe damit auch schon teilweise erfolgreich herumexperimentiert - aber eben nur das Datum (DateTimeOriginal) aus dem Exif-header auslesen lassen - und dann auch noch in das Dateikommentarfeld schreiben lassen - habe ich noch nicht geschafft.

Erstmal Danke für Eure Antworten...

Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 18:30 Uhr

Indy
Posts: 538
Nutzer
@Thomas

Das script funktioniert eigentlich prima, ...wenn ich %t weglasse.
Sonst meckert Filenote über "wrong number of arguments".

Das Problem ist offensichtlich das Leerzeichen zwischen %d und %t.

Wenn man diesen Abschnitt in Anführungszeichen setzt, also "%d %t", dann klappt das zwar als direkte Befehlszeile in einer Shell, aber nicht als Zeile in einer Batchdatei.

Hmmm... noch eine Idee ?

Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 19:07 Uhr

thomas
Posts: 7717
Nutzer
Anführungszeichen innerhalb von Zeichenketten benötigen einen vorangestellten Stern, so wie ich das beim Dateinamen auch gemacht habe.

lformat="filenote *"%p%n*" *"%d %t*""

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 19:19 Uhr

Indy
Posts: 538
Nutzer
@thomas:

Danke Dir, jetzt funktioniert's...


Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 19:34 Uhr

Palgucker
Posts: 1342
Nutzer
Vielleicht noch dieses Script.

code:
/* arexx */
IF ~SHOW('LIBRARIES','rxasl.library') THEN DO
    IF ~ADDLIB('rxasl.library',10,-30,0) THEN DO
       SAY 'Kann die <rxasl.library> nicht öffnen!'
       EXIT(10)
   END
END
IF ~SHOW('LIBRARIES','rexxsupport.library') THEN DO
   IF ~ADDLIB('rexxsupport.library',10,-30,0) THEN DO
      SAY 'Kann die <rexxsupport.library> nicht öffnen!'
      EXIT(10)
   END
END
PARSE ARG Jpeg
Tag.Num = 1 ; Tag.Drawer = "" ; Tag.0 = JPEG
If Jpeg="" Then DO
    Tag.Title              = "Wähle JPEG-File(s)"
    Tag.DoPatterns         =   1
    Tag.LeftEdge           =
    Tag.TopEdge            =
    Tag.Width              =
    Tag.Height             =
    Tag.Pattern            = "(#?.jpg|#?.jpeg)"
    Tag.DoMultiSelect      =   1
    Tag.Drawer        =
    Res=ReqFile(Tag)
    IF LENGTH(Tag.Drawer)>0 & Right(Tag.Drawer,1)~=":" THEN Tag.Drawer = Tag.Drawer||"/"

   If Res=-1 Then DO
       SAY "Nichts ausgewählt"
       EXIT(0)
   END
END
Do Dl = 0 TO Tag.Num-1
    JPEG=Tag.Drawer || Tag.Dl
    SlashPos = LASTPOS('/',JPEG)
    IF SlashPos = 0 then
        SlashPos = LASTPOS(':',JPEG)
    Filename = SUBSTR(Jpeg,SlashPos+1)
    DosJpeg='22'x||Jpeg||'22'x
    Out="T:jhead.out"
    Comment=FileName||" : Kein Exif-Header"
    ADDRESS COMMAND jhead DosJpeg " >"Out
    Call Open(Out,Out,R)

    DO FOREVER
        Read=READLN(Out)
        IF eof(Out) | POS("Date/Time",Read,1)>0 THEN LEAVE
        DateRow=POS("Date/Time",Read,1)
    END
    Cl=Close(Out)
    D=DELETE(Out)
    IF POS("Date/Time",Read,1)>0 THEN DO
        Mon.01="-Jan-"
        Mon.02="-Feb-"
        Mon.03="-Mär-"
        Mon.04="-Apr-"
        Mon.05="-Mai-"
        Mon.06="-Jul-"
        Mon.07="-Jul-"
        Mon.08="-Aug-"
        Mon.09="-Sep-"
        Mon.10="-Okt-"
        Mon.11="-Nov-"
        Mon.12="-Dez-"
        DAte=SUBWORD(Read,3,1) ; Time=SUBWORD(Read,4,1)
        IF Pos(":",Date,1)>0 THEN DO
            Parse Value Date with Jahr ":" Monat ":" Tag
            IF SUBSTR(Jahr,1,2)=20 THEN Jahr=SUBSTR(Jahr,3,2)
            Comment='22'x||Tag||Mon.Monat||Jahr||" "||Time||'22'x
            ADDRESS COMMAND Filenote DosJpeg comment
            Comment=FileName||" : "||strip(Comment,'B','"')
        END
        ELSE DO
            Comment=FileName||" : Date/Orginal-Tag ungültig"
        END
    END
    SAY Comment
END


Liest mittels jhead das Erstellungsdatum aus dem Exif-Header aus (wenn vorhanden) und trägt es als Kommentar ein.

mfg Palgucker

[ Dieser Beitrag wurde von Palgucker am 12.01.2006 um 14:11 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

07.01.2006, 22:33 Uhr

Indy
Posts: 538
Nutzer
@Palgucker:

Danke Dir erstmal für Deine Mühe.
Aber irgendwas läuft da noch schief.

Bekomme nur die Meldung:

+++ Error 41 in line 6: Invalid expression
Command returned 10/41: Invalid expression
SYS:RexxC/RX failed returncode 10


Line 6 sieht eben so aus:

DosFile='22'x||File||'22'x


Gruß, Indy

[ Dieser Beitrag wurde von Indy am 07.01.2006 um 22:34 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

09.01.2006, 00:46 Uhr

Indy
Posts: 538
Nutzer
@Palgucker:

Also jetzt kommt zumindest keine Fehlermeldung mehr, aber nun passiert einfach gar nichts...
(abgesehen von einem kurzen Festplattenzugriff).

Hmmm...

Wäre es in diesem Script auch noch möglich, JPEGs komfortabel via Auswahlfenster auszuwählen ?


Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

09.01.2006, 12:34 Uhr

Palgucker
Posts: 1342
Nutzer
@ Indy

Zitat:
Also jetzt kommt zumindest keine Fehlermeldung mehr, aber nun passiert einfach gar nichts...
(abgesehen von einem kurzen Festplattenzugriff).

Hmmm...


Also, diese Fehlermeldung könnte auftreten, wenn deine Kamera aus irgendwelchen Gründen das Aufnahmedatum nicht einträgt - z.B. keine Uhr oder entsprechende Voreinstellungen nicht gemacht.
In diesem Fall existiert zwar der Eintrag im Exif, bleibt aber mit Leerzeichen gefüllt, was dann zu genannten Fehler führen kann.
Die Zeile
DosFile='22'x||File||'22'x
dürfte damit aber nichts zu schaffen haben. Sie dient nur dazu, den Filenamen in Anführungszeichen zu setzen. Im Prinzip wie im Dos das *".
Wenn Du dieses Script in einer Batchdatei verwendest, müssen die Filenamen ohne Anführungszeichen übergeben werden - Arexx mag die nicht.
Das das Programm ohne Ausgabe läuft, liegt daran, das es eben sehr Wortkarg geschrieben ist. ;)
Das einzige, wo man sehen kann, ob es was getan hat, ist der Dateikommentar an sich.
Wenn dort steht, "aufgenommen am...", hat es funktioniert.

Zitat:
Wäre es in diesem Script auch noch möglich, JPEGs komfortabel via Auswahlfenster auszuwählen ?

Wenn Du im Besitz der RXAsl.library bist, sollte das kein Problem sein.
Allerdings macht das ganze nur Sinn, wenn in Deinen Bildern auch gültige Exif-Tag's sind.
Dazu wäre interessant zu wissen, was bei der Ausgabe von jhead ansich unter:

DATE/TIME :

steht?

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

09.01.2006, 15:47 Uhr

Indy
Posts: 538
Nutzer
@Palgucker:

Die rxasl.library (v17.5) ist vorhanden und unter DATE/TIME ist in den JPEGs ebenfalls ein Datum-/Zeiteintrag vorhanden:

Folgendes in einer Shell eingetippt...

jhead RAM:DSCN0108.jpg

ergibt folgende Ausgabe:


File name : RAM:DSCN0108.jpg
File size : 977161 bytes
File date : 2004:10:11 17:01:42
Camera make : NIKON
Camera model : E3100
Date/Time : 2004:10:11 17:01:43
Resolution : 2048 x 1536
Flash used : Yes
Focal length : 12.3mm
Exposure time: 0.017 s (1/60)
Aperture : f/4.0
ISO equiv. : 100
Metering Mode: matrix
Exposure : program (auto)
Jpeg process : Baseline


Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

09.01.2006, 15:52 Uhr

Palgucker
Posts: 1342
Nutzer
@ Indy

Das sieht gut aus, werde ich mich nochmal hinsetzen, und das Script ein bischen umstricken.
Die Dateikommentare müssten dan eigendlich auch vom Script gesetzt wurden sein.

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 09:01 Uhr

Palgucker
Posts: 1342
Nutzer
Hallo Indy

Habe das Script nochmal so geschrieben, das es beim Aufruf ohne File ein Asl-Requester öffnet und es dazu noch etwas "Wortreicher" gestaltet.
Hoffe es funzt ausreichend gut.

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 13:56 Uhr

Indy
Posts: 538
Nutzer
@Palgucker:

Jetzt ergibt's leider ein:

+++ Error 5 in line 68: Unmatched quote
Command returned 10/5: Unmatched quote
SYS:RexxC/RX failed returncode 10


Danke Dir trotzdem nochmal für Deine Mühe...

Gruß, Indy

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 15:34 Uhr

Palgucker
Posts: 1342
Nutzer
@ Indy
Zitat:
Jetzt ergibt's leider ein:

+++ Error 5 in line 68: Unmatched quote
Command returned 10/5: Unmatched quote
SYS:RexxC/RX failed returncode 10


Das ist gerade das Problem, was hier
diskutiert wird.
Ich habe bisher meistens diese Hochkommatas (Apostrophe) als entities eingegeben, damit das Script eben nach dem rauskopieren sofort lauffähig ist, ohne das der User erst alle durch das in PHP-Sript in Akut-Akzent gewandelten Apostrophe wieder zurückwandeln muss.
Du müßtest also alle ' gegen Apostroph (Alt und ä) austauschen.

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 18:41 Uhr

Palgucker
Posts: 1342
Nutzer
Doppelposting

[ Dieser Beitrag wurde von Palgucker am 11.01.2006 um 18:42 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 18:41 Uhr

Palgucker
Posts: 1342
Nutzer
@ Indy

jetzt geht's wieder - also vielleicht einfach nochmal 'rauskopieren ;)

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

12.01.2006, 03:12 Uhr

Indy
Posts: 538
Nutzer
@Palgucker:

Was lange währt... wird schließlich doch noch gut.
Danke Dir vielmals, es läuft jetzt.

Werde mich noch daran versuchen, den Ausgabetext ein klein wenig abzuändern/kürzen, sodaß

aufgenommen am: 11.Oktober 2004 um 17:01:43

zu einem simplen

11-Oct-04 17:01:43

wird (so, wie eben der "normale" Datumstring in einem Shell-Fenster bei einem "List"-Befehl).


--- einige(!) Minuten später ---


So... DAS habe ich immerhin selbst geschafft... :)

Jetzt sieht der Kommentar so aus:

11-Oct-2004 17:01:43

(...das Jahr ist halt leider immer noch "2004" statt "04")

Fehlt eigentlich nur noch die Möglichkeit, mehrere JPEGs auf einmal bearbeiten lassen zu können (MultiSelect).


Gruß, Indy

[ Dieser Beitrag wurde von Indy am 12.01.2006 um 03:45 Uhr geändert. ]

[ Dieser Beitrag wurde von Indy am 12.01.2006 um 03:46 Uhr geändert. ]

[ Dieser Beitrag wurde von Indy am 12.01.2006 um 03:47 Uhr geändert. ]

[ Dieser Beitrag wurde von Indy am 12.01.2006 um 13:25 Uhr geändert. ]

[ Dieser Beitrag wurde von Indy am 12.01.2006 um 13:26 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

12.01.2006, 14:30 Uhr

Palgucker
Posts: 1342
Nutzer
@ Indy

Zitat:
Fehlt eigentlich nur noch die Möglichkeit, mehrere JPEGs auf einmal bearbeiten lassen zu können (MultiSelect).

Habe jetzt auch Multiselect eingebaut, wobei mir das ganze nicht so richtig gefällt, da man damit nur Dateien in Reihenfolge auswählen kann.
Also 1.2.3. und 4.Datei, aber eben nicht 2. 5. und 8. Datei.
Ich weiss auch nicht, ob das geht, zumindest habe ich das nicht gebacken bekommen.
Die Ausgabe habe ich auch noch angepasst, allerdings mit deutschen Monatskürzeln und die Jahreszahl ist jetzt auch 2-stellig (zumindest in diesem Jahrhundert.
Weiterhin kann man das Script natürlich auch noch per Shell einsetzen,
um ganze Verzeichnisse in einem Rutsch zu bearbeiten.

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

13.01.2006, 01:41 Uhr

Indy
Posts: 538
Nutzer
@Palgucker:

Habe jetzt auch Multiselect eingebaut, wobei mir das ganze nicht so richtig gefällt, da man damit nur Dateien in Reihenfolge auswählen kann...


Also jetzt wirst Du aber zuu bescheiden... ;)

Ich habe gerade MultiSelect getestet, und konnte sehrwohl JPEGs in Reihe (d.h. hintereinander) als auch z.B. 2., 5. und 8. JPEG eines Verzeichnisses gemeinsam anwählen (Shift-Taste) und in einem Rutsch erfolgreich bearbeiten lassen.

Oder meintest Du etwas anderes ?

Durch die zweistellige Jahreszahl ist nun auch das Datumsformat im Kommentar mit jenem des Dateidatums identisch. Toll!

Einträge aus dem Jahresbereich 19xx wird man dann eben "intuitiv" von den übrigen unterscheiden müssen.


Vielen Dank
und
Gruß, Indy

[ Dieser Beitrag wurde von Indy am 13.01.2006 um 01:42 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

13.01.2006, 14:21 Uhr

Palgucker
Posts: 1342
Nutzer
@ Indy

Zitat:
Also jetzt wirst Du aber zuu bescheiden... ;)

Ich habe gerade MultiSelect getestet, und konnte sehrwohl JPEGs in Reihe (d.h. hintereinander) als auch z.B. 2., 5. und 8. JPEG eines Verzeichnisses gemeinsam anwählen (Shift-Taste) und in einem Rutsch erfolgreich bearbeiten lassen.

Oder meintest Du etwas anderes ?


Nein, genau das meinte ich - nur auf die Shift-Taste bin ich irgendwie nicht gekommen.
Da bedanke ich mich für den Tip! :)

Zitat:
Einträge aus dem Jahresbereich 19xx wird man dann eben "intuitiv" von den übrigen unterscheiden müssen.

Ich schrieb, in diesem Jahrhundert 2-stellig. Sollte dir ein Foto mit Jahr 19xx unterkommen - den Exif Standard in Version 2.1 gibt es ja schon seit Mitte 98 -, wird das Jahr 4-stellig angegeben. Genauso wird es wieder, wenn dieses Jahrhundert endet. ;)

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]

13.01.2006, 14:26 Uhr

Acki
Posts: 157
Nutzer
@Palgucker:
Könntest Du mir das Script bitte auch zukommen lassen.

Gruß
Acki
ma@rcs.de

[ - Antworten - Zitieren - Direktlink - ]

13.01.2006, 14:56 Uhr

Palgucker
Posts: 1342
Nutzer
@ Acki

Das Script befindet sich Ende oberes Drittel hier im Thread. Habe dieses immer nur aktualisiert, weil ich diesen Thread nicht umbedingt mit Arexx-Scripten zukleistern wollte.

mfg Palgucker

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Amiga, AmigaOS 4 > Dateidatum -> Dateikommentar [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.