+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Accedere ai dati EXIF delle immagini fotografiche JPEG o RAW

  1. #1
    L'avatar di il Fenomeno
    il Fenomeno non è in linea Scolaretto
    Luogo
    Amelia
    Post
    75

    Accedere ai dati EXIF delle immagini fotografiche JPEG o RAW

    Mi piacerebbe scrivere (con Visual Basic o in Access) un programma o una routine per leggere i dati EXIF delle immagini fotografiche, o almeno i più importanti, come per esempio la data e l'ora di scatto.

    Mi chiedo dunque se già esiste un oggetto VB o Access che permette di farlo.

    In caso contrario, sarebbe interessante conoscere le specifiche del formato JPEG o dei diversi formati RAW delle case costruttrici di fotocamere.
    I miei strumenti: Windows 7 - Visual Basic Express 2010 - Access 2010 - Office 2010

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,390
    In lettura prova a vedere questo esempio:
    Estrarre dati EXIF da immagini JPG/JPEG
    scaricalo ed assegnagli un'estensione RAR quindi scompattalo...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    L'avatar di il Fenomeno
    il Fenomeno non è in linea Scolaretto
    Luogo
    Amelia
    Post
    75
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    In lettura prova a vedere questo esempio:
    Estrarre dati EXIF da immagini JPG/JPEG
    scaricalo ed assegnagli un'estensione RAR quindi scompattalo...
    Grazie, @Alex, ho provato, ma il mio AV (Avast) con un eccesso di zelo mi ha impedito di accedere al file considerandolo "potenzialmente sospetto", e ha messo in quarantena l'url di provenienza. Proverò ancora, anche se ...

    ... nel frattempo ho reperito in rete abbondante ed esaustiva documentazione in merito, sia per quanto riguarda lo Standard Exif 2.1 e 2.2, sia per le estensioni dei fabbricanti (le cosiddette "MakerNotes", in particolare quelle relative alle fotocamere Canon.

    Ho potuto così realizzare una soluzione VB2010 per la lettura (e successivamente per la modifica) dei vari Exif Tag ... debbo solo valutare se migrare il tutto in VBA, per poter disporre di una tabella Access per la decodifica dei Tag.
    I miei strumenti: Windows 7 - Visual Basic Express 2010 - Access 2010 - Office 2010

  4. #4
    L'avatar di il Fenomeno
    il Fenomeno non è in linea Scolaretto
    Luogo
    Amelia
    Post
    75
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    In lettura prova a vedere questo esempio:
    Estrarre dati EXIF da immagini JPG/JPEGscaricalo ed assegnagli un'estensione RAR quindi scompattalo...
    Sono riuscito finalmente a scaricare e a estrarre la Base dati e la DLL associata.

    Mi viene fuori un errore di compilazione che recita così:

    Il codice del progetto deve essere aggiornato per l'utilizzo in sistemi a 64 bit.
    Esaminare e aggiornare le istruzioni Declare, quindi contrassegnarle con l'attributo PtrSafe.

    codice:
    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
                "SHGetPathFromIDListA" (ByVal pidl As Long, _
                ByVal pszPath As String) As Long                                'Browser Folder
    
    Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
                "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _
                As Long                                                         'Browser Folder
    
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
                "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) _
                As Long                                                         'Common DiaLog
    Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias _
                "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) _
                As Long                                                         'Common DiaLog
    Capisco il problema, ho un sistema i7 3770 "liscio" con W7 Professional a 64 bit, ma non mi dispiacerebbe ricevere qualche informazione in più. Non so se è il thread giusto per porre la domanda, ma l'attributo PtrSafe va aggiornato solo nelle Declare delle funzioni, o anche ai singoli campi dichiarati Long, per adeguare il modulo?

    Inoltre, a seguito dell'errore risulta impossibile chiudere Access con gli appositi comandi: per uscire ho dovuto "killare" il processo tramite la "Gestione attività" di W7.
    Ultima modifica di il Fenomeno; 26-01-2013 06:55 
    I miei strumenti: Windows 7 - Visual Basic Express 2010 - Access 2010 - Office 2010

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,390
    Parli di VBA...?

    Sei certo che servano quelle API...? Perchè non usi il FileDialog nativo e non le elimini...?
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  6. #6
    L'avatar di il Fenomeno
    il Fenomeno non è in linea Scolaretto
    Luogo
    Amelia
    Post
    75
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Parli di VBA...? Sei certo che servano quelle API...? Perchè non usi il FileDialog nativo e non le elimini...?
    Devi scusarmi, caro @Alex, alle volte mi perdo con tutte queste sigle e acronimi.
    Sto solo cercando di usare lo strumento più adatto per il mio scopo.

    A questo proposito debbo chiarire che uso di Access quasi esclusivamente le funzioni che mi consentono di aggregare e fare ricerche anche complesse sulle mie tabelle, e quando parlo di VBA mi riferisco a quel subset di Visual Basic che è disponibile in Access, e che utilizzo per alimentare le tabelle citate, ma quanto a realizzare un'applicazione Access, bene, mi sarebbe tanto piaciuto poterlo fare ma le mie conoscenze in merito sono piuttosto limitate.

    Quanto alle API, ho sempre cercato di evitarle e vorrei continuare a farlo. Il DBF che ho scaricato su tua indicazione mi ha dato i problemi già descritti, mi attraeva il fatto di poter sfruttare la DLL allegata per interpretare i file che utilizzano lo standard EXIF. Non riuscendovi, ho continuato a lavorare sul tema EXIF e sono riuscito - con una applicazione scritta in VB 2010 - ad estrarre tutti i dati base e quelli proprietari (MakerNotes, anche se solo quelli relativi alle fotocamere Canon). Ho anche contattato la Canon Inc. per ottenere informazioni atte alla loro interpretazione, ma non sono stati in grado di fornire risposta e ho dovuto arrangiarmi con l'aiuto della rete.

    La tematica è complicata dal fatto che il tracciato dei files JPEG è altamente variegato (alcuni vecchi software si fermano a vecchie specifiche di cui non si può non tenere conto) e che le MakerNotes sono di difficile (ma non impossibile) interpretazione. In conclusione, perchè utilizzare Access? I tipi di TAG EXIF base sono circa 300 e altri 150 circa quelli della Canon (il produttore più prolifico): anche se sono quantità irrisorie, elaborare i dati in Access faciliterebbe il compito, se non altro per la decodifica del significato dei vari TAG.
    I miei strumenti: Windows 7 - Visual Basic Express 2010 - Access 2010 - Office 2010

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi