Domanda

Devo collegare una data e un nome ad alcuni jpeg che includo nel mio pacchetto o eventualmente che scarico dal mio server nella cartella Documenti.C'è un modo per estrarre facilmente i dati EXIF?

In tal caso, utilizzerò EXIF ​​per memorizzare queste informazioni.In caso contrario, dovrò creare un database o un file flat che associ i miei dati aggiuntivi al file immagine.

Tieni presente che queste non sono foto scattate dall'iPhone e fornite tramite UIImagePicker o dall'esterno della sandbox.Queste sono le foto che includo nell'app o che scarico personalmente nella cartella Documenti.Il punto importante qui è la facilità:

È più facile

  • leggere il file EXIF ​​dai miei file di immagine
  • Avere un altro file che tiene traccia del file di immagine e dei dati associati (potrebbe essere SQLite)

Grazie!

È stato utile?

Soluzione

Puoi provare a utilizzare kit di strumenti iPhone-Exif per estrarre i dati.Tuttavia, ha licenza GPL e se la tua app è commerciale dovrai negoziare un contratto di licenza.Se ciò non è fattibile, potresti voler seguire il percorso dei metadati esterni.

Altri suggerimenti

L'attuale EXIF i dati vengono memorizzati sotto forma di un piccolo TIFF file con tag TIFF specifici per EXIF ​​per informazioni che non trovano spazio nella specifica TIFF.Quando inserito in un file JPEG (in realtà un bitstream JFIF), viene memorizzato in un marcatore JPEG APP1 che limita la dimensione totale dei dati EXIF ​​a poco meno di 64 KB.

Non dovrebbe essere così difficile individuare l'indicatore APP1, confermare che contenga dati EXIF ​​e quindi analizzare una raccolta specifica di tag EXIF ​​con una codifica abbastanza bruta.

Un esempio a cui puoi guardare è eiftool che fa proprio questo, ed è scritto in Perl e open source con gli stessi termini del Perl stesso.

Se questi file sono destinati esclusivamente all'uso nella tua applicazione e non verranno riutilizzati in altri strumenti dall'utente, è necessario archiviare i dati come XML/JSON nel segmento di commento 0xFFFE.Come accennato prima, hai poco meno di 64k con cui giocare.

Il bello dell'utilizzo del segmento dei commenti è che dovrebbe essere preservato dagli strumenti di modifica delle immagini, è di rapido accesso (perché non è necessario attraversare i blocchi IFD che memorizzano i dati EXIF, basta leggere/scrivere una stringa di testo con tipo 4 byte /length header) ed è leggibile/scrivibile dall'uomo in un'app grafica.

Se possibile, eviterei di archiviare i dati associati in un db, in modo da non rischiare che il db non sia sincronizzato con i file disponibili.

Io uso ExifTool

incorporato nella mia app.Funziona a meraviglia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top