Condividi:        

Leggere dati EXIF di foto JPG con VBA

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 13/01/10 00:45

Ciao a tutti,
vengo subito alla mia richiesta.

Ho la necessità di estrarre da molte foto (in JPG) i seguenti dati:
1. data foto
2. dimensioni foto (2592x1944)
3. numero diaframma (F8)
4. sensibilità ISO (3200)
5. lunghezza focale (55)
6. tempo di esposizione (1/15)
7. orientamento foto (orizz/vert)
8. utilizzo del flash (SI)
9. compensazione esposizione (+0.7)
10. ecc.

Attualmente opero manualmente:
A. utilizzo un software (FREE, ce ne sono proprio tanti) per estrarre i dati EXIF e scaricarli in CSV,
B. elaboro questo scarico manualmente in Excel tramite VBA
C. produco dei dati utili per la mia esigenza.

E’ una operazione lunga e ripetitiva quindi … vorrei automatizzarla.

Sono in grado di leggere, con VBA, solo la data e le dimensioni ma il resto dei dati non riesco ad estrarlo.

In conclusione: mi occorre fare in automatico, tramite il VBA, la lettura dei dati di EXIF per poter produrre i dati da elaborare.

Ho fatto tante ricerche in rete ma non ho trovato nessun esempio in VBA

Voi avete qualche suggerimento?

Grazie.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Sponsor
 

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 13/01/10 00:49

Ciao

se può essere utile allego il codice che utilizzo per individuare alcune proprietà delle immagini.

Codice: Seleziona tutto
' Questa è la macro da cui partire per individuare le proprietà dei vari file immagine
Sub Dati_File_Scelto()
    MsgBox "Autore David Crowell. Adattamenti e implementazioni di Ricky53"
   
    Percorso = ActiveWorkbook.Path
    Percorso = InputBox("Inserire il nome di un percorso per visualizzare le proprietà delle immagini presenti", "Visualizzazione File", Percorso)
    Tipo = "*.JPG"
    Tipo = InputBox("Inserire il Tipo di file che si vuole visualizzare", "Scelta Tipo File", Tipo)
    Range("A2:h2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("A1").Select
   
    nome = Percorso & "\" & Tipo
    f = Dir(nome)
    i = 2
    Cells(i, 1) = f
    Nome_File = f
    nome = Percorso & "\" & Nome_File 'f
        If UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "JPG" Or _
             UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "BMP" Or _
             UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "GIF" Or _
             UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "PNG" Then
             
             ReadImageInfo (nome)
             Scrivi_Proprietà
        End If
    Cells(i, 2) = FileDateTime(nome)
    Cells(i, 3) = FileLen(nome)
    Cells(1, 4) = "Tipo Immagine"
    Cells(1, 5) = "Altezza"
    Cells(1, 6) = "Larghezza"
    Cells(1, 7) = "Profondità in bit"
    For i = 3 To 20000
        On Error GoTo continua:
        Cells(i, 1) = Dir
        Nome_File = Cells(i, 1)
        nome = Percorso & "\" & Nome_File
        Cells(i, 2) = FileDateTime(nome)
        Cells(i, 3) = FileLen(nome)
        If UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "JPG" Or _
             UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "BMP" Or _
             UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "GIF" Or _
             UCase(Mid(Nome_File, Len(Nome_File) - 2, 3)) = "PNG" Then
             
             ReadImageInfo (nome)
             Scrivi_Proprietà
        End If
    Next i
continua:
End Sub
'..................................
Sub Scrivi_Proprietà()
    Select Case m_ImageType
        Case 1
             Tipo = "GIF"
        Case 2
             Tipo = "JPG"
        Case 3
             Tipo = "PNG"
        Case 4
             Tipo = "BMP"
        Case Else
             Tipo = "N/D"
    End Select
    Cells(i, 4) = Tipo
    Cells(i, 5) = m_Height
    Cells(i, 6) = m_Width
    Cells(i, 7) = m_Depth
End Sub
'..................................
Option Explicit
Private Const BUFFERSIZE As Long = 65535
Public Enum eImageType
    itUNKNOWN = 0
    itGIF = 1
    itJPEG = 2
    itPNG = 3
    itBMP = 4
End Enum
Public m_Width As Long, m_Height As Long, m_Depth As Byte, m_ImageType As eImageType
Public Nome_File As String, Percorso As String, Tipo As String, f As String, nome As String, i As Integer
Public Property Get Width() As Long
    Width = m_Width
End Property
Public Property Get Height() As Long
    Height = m_Height
End Property
Public Property Get Depth() As Byte
    Depth = m_Depth
End Property
Public Property Get ImageType() As eImageType
    ImageType = m_ImageType
End Property

' Autore di questa macro : David Crowell
' Adattamenti effettuati successivamente da: Ricky53
Public Sub ReadImageInfo(sFileName As String)
    Dim bBuf(BUFFERSIZE) As Byte
    Dim iFN As Integer
   
    m_Width = 0
    m_Height = 0
    m_Depth = 0
    m_ImageType = itUNKNOWN
   
    iFN = FreeFile
    Open sFileName For Binary As iFN
    Get #iFN, 1, bBuf()
    Close iFN
   
'PNG ------------------------------------------------------------ -----
    If bBuf(0) = 137 And bBuf(1) = 80 And bBuf(2) = 78 Then
        m_ImageType = itPNG
        Select Case bBuf(25)
             Case 0
                 m_Depth = bBuf(24)
             Case 2
                 m_Depth = bBuf(24) * 3
             Case 3
                 m_Depth = 8
             Case 4
                 m_Depth = bBuf(24) * 2
             Case 6
                 m_Depth = bBuf(24) * 4
             Case Else
                 m_ImageType = itUNKNOWN
        End Select
        If m_ImageType Then
             m_Width = Mult(bBuf(19), bBuf(18))
             m_Height = Mult(bBuf(23), bBuf(22))
        End If
    End If
'GIF ------------------------------------------------------------ -----
    If bBuf(0) = 71 And bBuf(1) = 73 And bBuf(2) = 70 Then
        m_ImageType = itGIF
        m_Width = Mult(bBuf(6), bBuf(7))
        m_Height = Mult(bBuf(8), bBuf(9))
        m_Depth = (bBuf(10) And 7) + 1
    End If
'BMP ------------------------------------------------------------ -----
    If bBuf(0) = 66 And bBuf(1) = 77 Then
        m_ImageType = itBMP
        m_Width = Mult(bBuf(18), bBuf(19))
        m_Height = Mult(bBuf(22), bBuf(23))
        m_Depth = bBuf(28)
    End If
'JPG ------------------------------------------------------------ -----
    If m_ImageType = itUNKNOWN Then
        Dim lPos As Long
        Do
             If (bBuf(lPos) = &HFF And bBuf(lPos + 1) = &HD8 _
                  And bBuf(lPos + 2) = &HFF) _
                  Or (lPos >= BUFFERSIZE - 10) Then Exit Do
             lPos = lPos + 1
        Loop
        lPos = lPos + 2
        If lPos >= BUFFERSIZE - 10 Then Exit Sub
        Do
             Do
                 If bBuf(lPos) = &HFF And bBuf(lPos + 1) _
                <> &HFF Then Exit Do
                 lPos = lPos + 1
                 If lPos >= BUFFERSIZE - 10 Then Exit Sub
             Loop
             lPos = lPos + 1
             Select Case bBuf(lPos)
                 Case &HC0 To &HC3, &HC5 To &HC7, &HC9 To &HCB, _
                 &HCD To &HCF
                     Exit Do
             End Select
             lPos = lPos + Mult(bBuf(lPos + 2), bBuf(lPos + 1))
             If lPos >= BUFFERSIZE - 10 Then Exit Sub
        Loop
        m_ImageType = itJPEG
        m_Height = Mult(bBuf(lPos + 5), bBuf(lPos + 4))
        m_Width = Mult(bBuf(lPos + 7), bBuf(lPos + 6))
        m_Depth = bBuf(lPos + 8) * 8
    End If
End Sub
Private Function Mult(lsb As Byte, msb As Byte) As Long
    Mult = lsb + (msb * CLng(256))
End Function


Ciao a tutti di nuovo da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 13/01/10 10:04

Ciao Ricky

Inutile replicare soluzioni fornite da altri, tipo questa :D
oppure questa

Pensavo invece, se fosse possibile con appositi programmi, creare dei batch per automatizzare l'operazione.

Esempio supponiamo che si stia utilizzando FreeExifRicky.exe (l'utility che crea il file csv) e fosse possibile con un comando tipo "FreeExifRicky.exe /immagine1.jpg" ottenere il file csv di questa immagine sarebbe sufficiente creare un elenco di file in un foglio di excel e con un ciclo for next..., ma non sono io che devo dire a te il resto... ;)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 13/01/10 15:49

Ciao Flash,

grazie per la tempestiva risposta.
Si quanto mi hai segnalato lo avevo già trovato e stavo studiando un modo per utilizzarlo ma l'operazione è lunga e complessa ... comunque sto lavorandoci sopra

Ho scaricato anche le specifiche della struttura dati EXIF: 154 pagine di informazioni ... troppe
ma forse ... ---->> devo trovare le librerie adatte per il VBA

L'idea di richiamare da VBA il programma che produce il csv non è male ma nasce la difficoltà di passargli i parametri del percorso e del tipo file ... vedrò cosa posso fare
Il software che utilizzo è:

BR's EXIFextracter ---->> software Free semplice, mi estrare tutte le informazioni che mi occorrono in formato CSV.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 13/01/10 16:11

Hai scaricato il file del secondo link (Gen_Exif_Data.exe)?
è un database si potrebbe adattare?

Più tardi, con un po' di tempo vedo cosa si può fare con photoshop cs3, l'applicativo ha delle macro proprie e possibilità di registrare ulteriori macro... ;)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 13/01/10 16:27

Ciao,
si lo avevo fatto ieri mattina e poi a notte fonda stavo lavorando sulle istruzioni presenti nel DB ... ancora sono lontano ... ma non disperiamo.

Grazie per il tuo impegno.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 14/01/10 00:48

Ciao,
ho fatto piccolissimi passi.

Il codice presente nell'esempio elabora una sola immagine per volta e lo fa in modo non semplice (legge in binario il file JPG e trasforma il tutto in dati utilizzabili).

E' complesso adattare questo codice per un utilizzo con excel: riuscirà il nostro eroe ad uscirne fuori ???

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 14/01/10 01:33

ricky53 ha scritto:E' complesso adattare questo codice per un utilizzo con excel: riuscirà il nostro eroe ad uscirne fuori ???

Perché uscirne fuori?

Io rimarrei dentro... ;)
Nel senso del database
penserei a creare di volta in volta una tabella (che svuoterei a fine o inizio lavoro) dei file-immagine contenuti in una cartella
poi con il pulsante (o uno appositamente creato) scansionerei ogni record della tabella (elenco file con il percorso) e andrei a scrivere tanti file leggibili dell'EXIF di ogni immagine.
Non ho avuto modo di cimentarmi alla modifica del vba ma se abbiamo già qualcosa di funzionante in DB perché riversare il codice in excel?

Ciao

P.s. ho provato con photoshop ed è possibile avere un file per prelevare quello che occorre, purtroppo, però, non è auotomatizzabile con le macro di photoshop in quanto non è un'azione sull'immagine ma solo Informazioni del file che non viene registrata come "azione" :cry:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 14/01/10 11:25

Ciao,

grazie per il tuo interessamento (anche su CS3).

Si avevo pensato di utilizzare la struttura dell'esempio in Access e scrivere un file XLS con tutti i dati che mi occorrono ma comunque avrei dovuto:
1. fare modifiche al file access sia per leggere il file mio xls iniziale contenente il nome ed il percorso delle mie immagini
2. rendere ciclico il file access per scorrere tutti i nomi delle mie immagini perchè adesso elabora una immagine alla volta
3. scrivere i dati ottenuti da acces nel mio file

Mi è sembrato di mettere in campo troppi anelli e rendere complesso il tutto.

Ho avuto conferma di ciò leggendo il codice presente nel file access e quindi ho scelto di estrarre dall'esempio solo il codice che legge le immagini e interpreta e predispone i dati delle immagini e poi inserire il tutto nel mio file iniziale.
E' complicato ma ...

Il codice lo sto analizzando mi sembra ci siano troppe chiamate una dentro l'altra e tanti controlli ecc. (per generalizzare sicuramente ma così si è appesantito il codice)

Io da "Vecchio" ed anche programmatore Basic e Cobol preferisco schemi più semplici ... (tanto per facezia).

Ovviamente se avrete qualche altra idea o altri esempi saranno, ovviamente, graditi.

Vi aggiorno sull'avanzamento.

Ciao da ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 14/01/10 13:26

Ciao Ricky

Ma io non intendevo usare xls per avere l'elenco dei file ma utilizzare sempre access
es.
Una tabella chiamata Configurazione o Percorso con all'interno un record di 3 campi
Codice: Seleziona tutto
nome   dirpath                                    descrizione
DirJPG   D:\Immagini\20090815\   direttorio dove cercare i file immagini

Se vuoi una Tabella dove inserire, attraverso la macro Vba, l'elenco dei file contenuti nella cartella di DirJPG
oppure con un file Bat contenuto nella cartella D\Immagini con il seguente codice all'interno
----
del D:\Immagini\lista.txt
del D:\Immagini\lista.cfg
dir /B D:\Immagini\20090815\*.jpg > D:\Immagini\lista.txt
copy D:\Immagini\lista.txt D:\Immagini\lista.cfg
exit
----
(a volte uso crearmi il file Batch con il VBa per poi cancellarlo)

Poi nel database con un codice tipo questo
Codice: Seleziona tutto
Open DirJpg & "lista.cfg" For Input As #1
Do Until EOF(1)                         
     Line Input #1, riga
'etc etc


Uso database con questa struttura da anni e ogni "riga" per me è un file con centinaia di dati che importo in tabelle precostituite dalle quali, poi, ottengo ciò che voglio con tutta la "potenza" di Access e, il prodotto finale, lo trasferisco su file excel per avere grafici che solo excel può darmi (Access è un po' scarso da questo punto di vista).

Fai sapere cosa decidi di fare
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 14/01/10 16:14

Ciao,
di nuovo grazie.

Rifletto su quanto hai scritto e ti faccio sapere.

Rimane sempre la necessità di modificare l'esempio in Access per farlo ciclare sulle immagini che ho caricato con il tuo suggerimento e far scrivere i dati exif (ricavati con l'esempio) su una nuova tabella di appoggio da importare in EXCEL per le elaborazioni finali.

Una cosnidarezione: in Access non mi muovo molto bene quindi ... uno dei motivi che mi spinge a fare tutto in excel ma ...

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 15/01/10 01:08

Ciao Flash,

ho fatto tutte le considerazioni possbili ma ritengo (anche a causa della mia limitata esperienza in Access) che sia meglio che io estragga dall'esempio in Access le istruzioni che leggono e traducono il file JPG in dati EXIF e le riporti (ADATTANDOLE) in excel.

Ho buttato giù lo schema, ho tolto molte sub e function.
Adesso sto lavorando sulla lettura (qui tutto bene) e suddivisione dei dati della prima tabella (qui meno bene): ho qualche difficioltà a trasformare il codice in Access che al posto di scrivere la prima tabella (quella con tutti i dati EXIF) scriva su delle celle in Excel: non ho conoscenze sufficienti per capirlo leggendolo, devo fare il debug e cercare di capire come spezza e scrive i dati nella tabella.

Flash tu come te la cavi con Access? Nel caso ti isolo quel codice e ti chiedo come operare.
A presto.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 15/01/10 03:48

Ci sto lavorando ;)

ma sembrava fosse più semplice :(

Spero solo che non abbia fretta

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 15/01/10 10:29

Ciao,

ma l'ora del tuo intevento è proprio quella che vedo?

Grazie per l'interessamento.
Ho fatto qualche altro piccolo passo.

Preferisci andare avanti da solo o ti invio le sub e le function sullle quali sto lavorando e per le quali trovo difficoltà a trasformarle in excel?

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 15/01/10 11:52

Beh, sto facendo aprire in automatico con quel db i file che desidero ;)
ora devo solo trasferire i dati della tabella "EXIF_VALUE" (prima di chiuderla in quanto cancella i record) in un foglio di excel che ho preparato con gli stessi campi non credo che sia complicato farlo,
forse mi porterà più tempo utilizzare quella utility di apertura cartelle e memorizzare automaticamente il percorso che si sceglie senza mettere, come pensavo e più facilmente realizzare, questa Stringa-percorso in un record di tabella, come ti spiegavo nel post precedente, perché costringerebbe l'utente a modificare la tabella, cambiando il percorso di volta in volta, oppure a trasferire le foto da processare sempre nella cartella prevista.

Vabbé ci aggiorniamo

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 15/01/10 14:38

Ciao,
la gestione della scelta del percorso e dei file puoi trascurarla: ho già una base in excel che fa proprio questo e che posso riutilizzare.
Se puoi trasformare in excel le istruzioni acces di scrittura/lettura delle due tabelle te ne sarò grato in eterno (... o quasi).

Nel file di esempio ci sono molte cose che sono buone (ben gestite e generalizzate) ma, a mio avviso (ripeto da ... vecchio programmatore con la regola del "CINQUE"), lo sono troppo (anche annidate) tante sub/function una dentro l'altra ed è complesso seguirle e trasfrormarle: io ho eliminato molto.

Ci risentiamo.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 15/01/10 16:21

No non mi chiedere la trasformazione in excel... ci vorrebbe una vita

Ho quasi terminato l'importazione in due tabelle: una temporanea (es di un ciclo di n immagini) e una archivio dove vanno conservate tutte quelle processate.
Il sistema prevede anche la non importazione di duplicati attraverso le chiavi primarie ;)
inserisce il nome del file e la data di processo.
Un domani con la tabella Archivio si possono estrarre tutte le foto da data a data sia di processo che di realizzazione nonché tutte quelle che hanno un certo tipo di parametri: questa è la "potenza" di Access!!!.
Ora però ti devo domandare una cosa:
i campi sono con numero variabile (dipende dalla jpg) a volte sono 31 a volte 33 avrei voluto,e posso farlo se occorre, metterli tutti ma sono 106 (il max previsto), alcuni anche inutili che renderebbero ingestibile il risultato finale,
pertanto mi dovresti fare l'elenco dei campi che ti occorrono (fammi l'elenco chiamandoli con lo stesso nome del Database, non mi dire esposizione, focale etc. ma usa i nomi dei campi della tabella Exif_Tag), puoi fare anche l'elenco utilizzando 10 o 15 foto e ogni volta copi i campi dalla tabella temporanea "EXIF_INFO" prima di chiudere il form e vedere le differenze (in numero e tipo di campi) tra le immagini.
A tal proposito è opportuno utilizzare immagini eterogenee (diverse fotocamere, utilizzo o no di programmi di grafica etc).

Attendo tue notizie

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 15/01/10 17:06

Si ho fatto prove con varie immagini prodotte con diversi fotocamere e modificate con CS2 o altro, con/senza flash, sovra/sotto esposte, con programma museo, notte, alba, ecc.
mi tornava tutto rispetto al sw che sto utilizzando manualmente.

Come tester sono ancora (nonostante non io faccia più questo lavoro da molti anni) chiamato dai colleghi per trovargli i bugs.

Si i 106 campi sono troppi e molti non utili.
Per i campi non è importante posso modifcare io.
comunque i campi della "EXIF_DESC" che mi interessano sono:

ColorSpace
DateTime
DateTimeOriginal
ExifImageHeight
ExifImageWidth
ExposureBiasValue
ExposureProgram
ExposureTime
Flash
FNumber
FocalLength
ISOSpeedRatings
Make
MakerNote
Model
Orientation
XResolution
YResolution

Grazie.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi ricky53 » 16/01/10 02:54

Ciao,
Flash come butta?
Stai facendo qualcosa per gli EXIF?

Io sono riuscito a leggere e suddividere in vari tag il file JPG con VBA in excel.
Mi resta ancora da tradurre in excel la decodifica dei nomi dei tag e poi associargli il valore corrispondente decodificato.

Con altro tempo riuscirò (almeno spero) a fare qanche questa parte.
Poi ci saranno gli aggiustamenti "di fino" e la forma estetica.

Ci risentiamo.

Cia da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Leggere dati EXIF di foto JPG con VBA

Postdi Flash30005 » 16/01/10 04:54

Ciao Ricky
Ottimo lavoro!!!

Stavo lavorandoci su e non ho letto (prima) il tuo post

comunque puoi iniziare a usare questo ;)

Si può senz'altro migliorare ma per iniziare va bene

Ciao

Ops! Dimenticavo tutta la cartella "Immagini" va messa nella root di C:\ e nella sottocartella "Contenitore" ci vanno le immagini che devi processare
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Leggere dati EXIF di foto JPG con VBA":


Chi c’è in linea

Visitano il forum: Nessuno e 107 ospiti