Newsgroup: it.comp.lang.delphi
Titolo: exif datetime ... help!

Ciao a tutti,
con TD ho sviluppato per uso personale (ma soprattutto per
divertimento) un applicativo per rinominare in batch le fotografie
che, in sostanza, sostituisce il nomefile della fotocamera con un
nomefile composto da un nome di fantasia dell'utente (inserito
manualmente in una edit) più data ed ora dello scatto nella forma gg-
mm-aaaa_hh-mm-ss, letti dai metadati exif del file da rinominare;
all'estrazione della parte data-ora provvede il seguente frammento
(poteva forse essere messo giù meglio, ma a me basta ... o quasi):
[code]
DT:=ExifImage.DateTimeOriginal[9]+ExifImage.DateTimeOriginal
[10]+'-'+ExifImage.DateTimeOriginal[6]+ExifImage.DateTimeOriginal
[7]+'-'+ExifImage.DateTimeOriginal[1]+ExifImage.DateTimeOriginal
[2]+ExifImage.DateTimeOriginal[3]+ExifImage.DateTimeOriginal
[4]+'_'+ExifImage.DateTimeOriginal[12]+ExifImage.DateTimeOriginal
[13]+'_'+ExifImage.DateTimeOriginal[15]+ExifImage.DateTimeOriginal
[16]+'_'+ExifImage.DateTimeOriginal[18]+ExifImage.DateTimeOriginal
[19];
[/code]
per mezzo della componente Exif.pas, linkata con una uses e
scaricabile qui: 
http://www.torry.net/vcl/graphics/jpg/texif.zip
Il mio problema sta nel fatto che a volte, specie quando uso lo scatto
continuo, le foto non hanno un'ora di scatto distinta se mi limito ad
usare hh-mm-ss e quindi la rinomina non va a buon fine, dato che cerca
di assegnare lo stesso nome a più di un file.
Potrei risolverla inserendo nella except la modifica del nomefile
inserendo un numero d'ordine supplementare, ma sinceramente non mi
piace. Sono impazzita cercando di capire se nell'exif datetime si
possano visualizzare almeno i millisecondi ma senza alcun risultato.
Qualcuno sa aiutarmi?
Grazie,
Silvia

Ho dato una rapida occhiata..Interessante...
Hai letto i documenti che contengono le specifiche su cui si basa il
componente che stai usando?
A.


quali specifiche, scusa? :-)
ho letto un po' (perché è micidiale) lo standard Exif e quanto a
quella componente, ho cercato di capirci qualcosa dal sorgente, ma
senza grandi risultati ... :-(
Sil

 di assegnare lo stesso nome a pi� di un file.
Anch'io ho fatto un programma uguale, e anch'io ho avuto il tuo stesso 
problema... il fatto � che, a quanto pare, i geni che hanno inventato 
l'EXIF non hanno pensato a mettere anche i millisecondi, quindi la 
precisione si ferma ai secondi.
Ergo, ci attacchiamo e usiamo un progressivo.
-- 
Jax

 precisione si ferma ai secondi.
Anche se... sto leggendo un po' le specifiche dell'Exif 2.2, e ho visto 
adesso che ci sono i campi SubsecTime e SubsecTimeOriginal... vediamo un 
po'.
-- 
Jax

 po'.
I tag ci sono ($9290 e $9291), ho adattato il componente che avevo (che 
non so se era uguale al tuo), per poi scoprire che probabilmente la mia 
macchina fotografica non salva questi tag, perch� il valore � sempre 
vuoto (anche usando programmi per visualizzare i dati Exif) :(
-- 
Jax

 Jax
Grazie della dritta! :-*
Io avevo leggiucchiato a mia volta le specifiche del 2.2 ma mi ero
fermata al DateTime che, come confermi tu, non va oltre il secondo.
Ho installato sulla lenny il pacchetto exif e gli ho "dato in pasto"
una foto recente: questo che segue è il risultato:
sissi@silvia-lenny:~$ exif  /home/sissi/img/foto_vacanze_2009/
dsc_0077.jpg
EXIF tags in '/home/sissi/img/foto_vacanze_2009/
dsc_0077.jpg' ('Motorola' byte order):
--------------------
+----------------------------------------------------------
Tag                 |Value
--------------------
+----------------------------------------------------------
Manufacturer        |NIKON CORPORATION
Model               |NIKON D40
Orientation         |top - left
x-Resolution        |300,00
y-Resolution        |300,00
Resolution Unit     |Inch
Software            |Ver.1.00
Date and Time       |2009:08:06 15:14:36
YCbCr Positioning   |co-sited
Compression         |JPEG compression
x-Resolution        |300,00
y-Resolution        |300,00
Resolution Unit     |Inch
YCbCr Positioning   |co-sited
Exposure Time       |1/159 sec.
FNumber             |f/6,3
ExposureProgram     |Not defined
ISO Speed Ratings   |200
Exif Version        |Exif Version 2.21
Date and Time (origi|2009:08:06 15:14:36
Date and Time (digit|2009:08:06 15:14:35
ComponentsConfigurat|Y Cb Cr -
Compressed Bits per |4,00
Exposure Bias       |0,00 EV
MaxApertureValue    |4,00 EV (f/4,0)
Metering Mode       |Pattern
Light Source        |0
Flash               |Flash did not fire.
Focal Length        |28,0 mm
Maker Note          |30894 bytes unknown data
User Comment        |
SubsecTime          |60
SubSecTimeOriginal  |60
SubSecTimeDigitized |60
FlashPixVersion     |FlashPix Version 1.0
Color Space         |sRGB
PixelXDimension     |3008
PixelYDimension     |2000
Sensing Method      |One-chip color area sensor
File Source         |DSC
Scene Type          |1
CFA Pattern         |
Custom Rendered     |Normal process
Exposure Mode       |Auto exposure
White Balance       |Auto white balance
Digital Zoom Ratio  |1,00
Focal Length In 35mm|42
Scene Capture Type  |Standard
Gain Control        |Normal
Contrast            |Soft
Saturation          |Normal
Sharpness           |Normal
Subject Distance Ran|Unknown
InteroperabilityInde|R98
InteroperabilityVers|0100
--------------------
+----------------------------------------------------------
EXIF data contains a thumbnail (8676 bytes).
come vedi la mia reflex lo salva (ho provato con altre foto e i valori
variano); devo ancora verificare se il componente che ho utilizzato io
li tratta, in tal caso la modifica potrebbe essere semplice;
altrimenti mi rivolgerò a te per il componente modificato, se me lo
permetterai ... io a tanto non ci arrivo, da brava dilettante :-)
Grazie,
Sil

 permetterai ... io a tanto non ci arrivo, da brava dilettante :-)
Siamo in due, che credi :)
Nel mio caso � bastato aggiungere un paio di variabili e un paio di 
punti al Case of che determinava il tag letto, magari anche nel tuo caso 
� cos�...
-- 
Jax

 senza grandi risultati ... :-(
che significa "senza grandi risultati"? Scusa, tu che lavoro fai?
A.