2012-08-28 25 views
10

Mi interessa un livello basso di come vengono archiviati i dati dell'immagine. Ad esempio, è possibile visualizzare un'immagine in Windows e ottenere informazioni sull'immagine (Fotocamera utilizzata, data, ecc.).Come vengono memorizzati i dati in un file immagine

A livello generale (sono sicuro che png, jpeg ecc differiscono) le immagini hanno un tipo di sezione di intestazione in cui sono definite le proprietà e forse una sezione di corpo che specifica il colore per un pixel specifico tramite una matrice multidimensionale?

Che aspetto potrebbe avere una sorgente di immagini se si potesse visualizzare la sorgente simile a una pagina Web? Se apro un JPEG sul mio computer, le prime righe sembrano XML.

+4

http://en.wikipedia.org/wiki/Image_file_formats: segui i collegamenti in questo formato per qualsiasi formato specifico di cui desideri conoscere la sezione "dettagli tecnici" nella pagina di ogni formato. – DGH

+3

Le immagini sono binarie. Se apri un file jpeg in un editor di testo che supporta la modalità esadecimale, sarai in grado di vedere il * guts * di esso per meglio dire così http://snag.gy/X1b7B.jpg. Controlla inoltre EXIF ​​per informazioni su come la maggior parte delle telecamere memorizzano le informazioni nell'intestazione dei file jpeg, ad esempio. http://en.wikipedia.org/wiki/Exchangeable_image_file_format –

+0

Quando dici binario, i dati dei pixel sono binari, presumo, ma i metadati devono essere memorizzati in qualche tipo di coppia di valori chiave, giusto? E sto assumendo che potrebbe xml, quindi se tentassi di interpretare il file come testo ascii vedrai quella coppia chiave/valore (xml per esempio), ma i dati del pixel binario appariranno come jibberish. –

risposta

2

L'XML che state vedendo fa parte dello Exchangeable image file format (or Exif). Se si guarda il file con un editor esadecimale si dovrebbe vedere come questi marcatori:

file ogni JPEG inizia dal valore binario '0xFFD8', finisce per binario valore '0xFFD9'. Esistono diversi dati 0xFFXX binari nei dati JPEG, sono denominati "Indicatore" e indicano il periodo dei dati di informazioni JPEG . 0xFFD8 significa SOI (Inizio dell'immagine), 0xFFD9 significa EOI (Fine dell'immagine).

Un file PNG inizia sempre con these eight bytes: 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A. Quindi ha un meccanismo simile a JPEG di usare marcatori di byte per indicare sezioni di dati. Leggi le specifiche complete here.

Problemi correlati