Newsgroup: it.comp.grafica
Titolo: Struttura di un file *.Jpg

Salve
Recentemente adoperando un editore Hex ho aperto un file fotografico
di estenzione Jpg e mi sono inbattuto in una caterbata di numeri esadecimali
(con cifre tra 0 e F)...
mi sono quindi chiesto come quei numeri potessero rappresentare una bella
donnina in abiti succinti (la foto in questione).
Qualcuno di voi potrebbe illuminarmi in proposito?
ci sono dei libri che parlano di ciň? nel web c'č qualcosa?
Grazie e saluti
Deserton

Non ho colto esattamente il senso della tua domanda... o meglio: dalla
rappresentazione esadecimale all'immagine che vedi ce stanno davvero tanti
di pasaggi, in particolari per immagine compresse come il jpg... qual'è
esattamente che non ti è chiaro? Oppure vuoi saperli tutti?
Riassumendo, a ritroso, i passaggi fondamentali che mi vengono in mente sono
questi:
- l'immagine viene spazialmente quantizzata in modo da rendere gestibible la
quantità di informazioni da raccogliere: è divisa in pixel, ognuno dei quali
ha un'unico colore.
- Si stabilisce un modello di rappresentazione dei colori, che vengono
individuati quindi da una n-pla di numeri: quanti numeri  e in che range
dipende dal modello colore scelto.
- a questo punto la nostra immagine è diventata una griglia, e in ogni
posizione della griglia c'è una n-pla di numeri in un certo range: ecco che
elencando queste n-ple secondo un'ordine prestabilito (ad esempio
cominciando dalla prima riga, da sinsitra a destra, poi proseguendo con la
seconda, sempre da sx a dx, e così via...), si ha una lunga sequenza di
numeri (ad esempio un'immagie di 1024x768 in rgb richiede di elencare, dati
aggiuntivi esclusi, 1024x768x3 = 2359296 numerelli nel range tra 0 e 255...
- se questi numeri poi li rappresenti in esadecimale, ecco il lungo elenco
di numeri/lettere che il tuo editor ti mostra... nell'esempio fatto sopra,
dato che sono necessari due "caratteri" per rappresentare in esadecimale un
numero da 0 a 256, ti troverai un elenco di 4718592 caratteri che
rappresentano la tua immagine...
Questo dovrebbe spiegare più o meno come si passa da un'immagine ad una
serie di numeri, nel modo più banale. A complicare le cose ci stanno poi
dati aggiuntivi, metodi di compressione, immagini multilayer, ecc... nel
caso particolare del jpg, una volta ottenuta la griglia di n-ple (anzi di
triplette, perchè il jpg lavora con un ben preciso modello colore che
prevede 3 numeri per rappresentare un colore), non ci si limita a scriverla
in sequenza secondo un'ordine prestabilito, ma vi si compiono sopra una
lunga serie di operazioni (che trovi riassunte in un mio post del 26 aprile
2003 intitolato "[Lunghetto... strano! :-)] Re: [OT] Jpg e Luminanza") al
fine di ridurre il numero di informazioni da memorizzare (buttandone via un
bel po'...).
Ciao
Giacomo

Salve
innanzitutto grazie per l'interessamento e per le risposte...
l'esempio della foto e del formato e della compressione sono secondari..
la mia curiosità era relativa alla struttura dei dati..
Per esempio prendiamo un formato fotografico più semplice che esista
il formato *.ico un'immagine ico è formata da una matrice di pixel
32*32=1024
a 16 colori..
questi dati come sono strutturati all'interno del file ico?
perchè tutti i file ico cominciano per...
0000010001002020100000000000E802000016000
0002800000020000000400000000100040000000000....
E' una sorta di "cappello" i dati veri e propri dell'immagine dove
cominciano?
....Se si volesse fare un programma (in Vb6 per esempio) come dovrebbero
essere prelevati i dati per poi visualizzare l'icona?
Saluti e grazie
Deserton

 essere prelevati i dati per poi visualizzare l'icona?
Appunto... la tua domanda dimostra che non è affatto secondario "di che
dati" si stia parlando. Non esiste una legge generale percui uno debba
strutturare i dati in un certo modo, quindi la struttura dati di un file
dipende strettamente dal tipo di file. Ecco che al di là di considerazioni
generiche tipo quelle da me fatte enl precedente post, non si può parlare di
file jpg se poi si vuol lavorare sugli ico. Ogni formato file ha delle
specifiche ben precise rispetto alla struttura dati, e benchè molti di essi
possano avere delle parti in comune, senza conoscerle nel dettaglio si può
far ben poco. Anche perchè molti formati (anche se non tutti) prevedonop una
memorizzazione sequenziale delle informazioni, quindi se ti dimentichi un
pezzettino, anche piccolo, tutto quello che leggi dopo lo leggerai in una
posizione diversa da quello che ti aspettavi e gli darai quindi un
significato sbagliato...
Nel caso particolare, io non so come sono memorizzati i dati in un file
.ico, però immagino che, come moltissimi altri formati (forse tutti?), sia
previsto un header, cioè una parte iniziale che contiene di solito
informazioni aggiuntivi/esplicative/identificative piuttosto che i dati veri
e propri dellìimmagine. La sequenza di byte che tut sotieni essere inizio
comune di tutti i file ico potrebbe essere una parte dell'header che dice,
appunto, che quello è un file di icona, più forse qualche informazione che
teoricamente è variabile ma che in realtà è uguale in queasi tutti i file
ico (ecco perchè tutti quelli che hai aperto risultsno avere lo stesso
inizio).
Per sapere esattamente come interpretare i dati che trovi in un file ico non
ti resta che cercarne le specifiche da qualche parte, non c'è altro modo; ad
esempio con una rapida ricerca su google e "icon ico file format
specification" ho trovato questo link:
http://www.iconolog.net/info/icoFormat.html
Magari c'è qualcosa di interessante...
Ciao
Giacomo

beh, se proprio vuoi saperlo, ogni singolo file del computer č composto da 0
ed 1 .... non ti deve stupire il fatto che il computer interpreti certi dati
in un modo o in un altro, questa č piů una domanda da fare ad un
programmatore o ad un cracker...
 El Modesto

 un programmatore o ad un cracker...
Non sarei del tutto d'accordo... noi lavoria con la grafica _al computer_,
non con grafica qualsiasi, e per lavorare bene siamo a mio parere tenuti a
conoscere gli strumenti che usiamo; questo ci permette di capirne i limiti e
i metodi di utilizzo migliori. Senno ci si trova a fare come alcuni che
vengono dalla grafica tradizionale e pensano di poter migrare al computer
imparando solo quali tasti pigiare per ottenere la stessa cosa che
ottenevano con carta e penna: questi personaggi a volte tirano fuori arrosti
ben peggiori del ragazzino spippolone della porta accanto...
Infondo un medico per darti una pasticca deve non solo sapere che è contro
un certo male, ma anche che principi attivi possiede, onde evitare di
dartene una contenente nitro per il mal di testa e una contenente glicerina
per l'ulecra... poi insieme fanno un pastrocchio!
Quindi, a mio parere, è ovvio (e in questo senso hai ragione) che non ci è
richiesto di conoscere nei dettagli l'implementazione dei vari formati
grafici, ma credo che sia parte del nostro lavoro conoscerne i principi e a
spanne il funzionamento...
Ciao
Giacomo

Qui 
http://www.wotsit.org/
 c'è l'elenco di tutti(?) i formati, cerca "jpg" e
troverai il pdf delle specifiche complete del formato (quasi un mega!). Qui
invece 
http://www.lithium.it/articolo.asp?code=50
 c'è un articolo non troppo
tecnico su jpg e jpg2000, ti da un'idea di come si arriva dall'immagine ai
dati.
Pleg

 ha scritto nel messaggio
news:cww1b.29226$zN5.8...@news1.tin.it...


 autorizzate
Non mi pare ci siano mai stati problemi per il ipg. C'erano per il gif, e
per quello è stato sviluppato png. Qualche problema c'è invece per mp3
(formato alternativo ogg)
-- 
La luce e' la mano sinistra delle tenebre,
e le tenebre la mano destra della luce.
(Ursula K. Le Guin)