PDA

View Full Version : Codifica Immagine in Java


skrano
20-06-2009, 19:54
Buonasera a tutti!
Mi chiamo Francesco, sono uno studente di un istituto tecnico industriale al 5 anno alle prese con la tesi di maturit...
Ho sviluppato la mia tesi sulla Steganografia e le tecniche di information hiding e vorrei implementare un programma in Java che appunto steganografi un file all'interno di un'immagine.
Il mio problema il seguente:
Devo convertire in bit l'immagine che inserisco in input in modo tale da poter operare sul bit meno significativo di ogni byte. per facilitarmi nel compito di verifica della codifica metto il tutto all'interno di un file di testo per la mia lettura " rapida " dopo averlo eseguito..
Solo che........ Vengono copiati i primi 2 byte di un'immagine senza codificarla tutta!
Ho provato a ragionarci con "carta e penna" per capire come operare... solo che sto innervosendo "inutilmente" a cercare metodi diversi..
Qualcuno sa come fare?
mi servirebbe "solamente" la parte di codifica in binario.. ho provato a cercare su internet ma ho trovato ben poco...
Il mio compagno di classe mi ha suggerito questo forum visto che stato pienamente aiutato pochi giorni fa! Sono fiducioso di voi!
E... Grazie per il tempo che mi avete dedicato!!

wisher
21-06-2009, 08:58
Puoi postare il codice che hai scritto?

skrano
21-06-2009, 10:12
FileInputStream immagine= new FileInputStream("pic.gif");
FileOutputStream file= new FileOutputStream("file.txt");
int c;
while(( c= immagine.read())!= -1)
{

file.write(c);

}
file.close();

immagine.close();



Cio che ora mi esce fuori questo.... :S



GIF89a+ 0 





 !!!"""###$$$&&&'''((()))***+++,,,---...///111222333444555666777888999:::;;;<<<===>>>???@@@BBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNPPPQQQTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaacccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~******2 2 2 2 2 2 2 2 2 K K K K K , + 0 G H**DxQ5L  fj%âPfx*O)edTeŲ8`J_ْ
@*T
PУA)(j|47[<,`g @. mVȀ ;eA$Æ*`*ft͑`I-@v23Ƅ]*
V<L2F! XBs@c-\Q
u8 X6}Rt@ -dT-
P @ 2`QUbm ?Hq*iDn#Ff
3xUTZMYQ<*,p/LD
A Ђ.@F &ATڄ 8XB!VJ< Hg
G5LA0RU .w N4lQF] M" A5XH IH
3V%bc Xpc$I pRo.Q 0#F
P 4P3\QU0*֤4
R*4n؁L4H"GWy0P1*V@XkP# #l/L30@ܲ@\e'(C']P fK.B,*
B qaD4D"K
g@0A5 !**Modified image**

Copyright by White Wolf Game Studios

Originally appeared: http://www.white-wolf.com/

Modifications: Greyscale, size change, removed animation
Modified by: Abe Dashiell ! MACGCon 6 Written by GIFConverter 2.4d18 of October 12, 1996 ;

wisher
21-06-2009, 10:23
Il tuo problema che cos facendo non decodifichi il formato GIF.

Prova a vedere se queste classi possono esserti utili:
http://java.sun.com/j2se/1.5.0/docs/guide/imageio/index.html
Con ImageIO.Read ottieni una bufferedImage da un file da cui con getRGB puoi ottenere le componenti dei singoli colori come RGB.
http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/ImageIO.html#read(java.io.File)
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html#getRGB(int, int, int, int, int[], int, int)

Usando setRGB puoi modificare il pixel che ti serve e poi puoi riscrivere l'immagine.

skrano
21-06-2009, 10:40
Prover a lavorarci su usando queste classi..
Grazie!
Vedremo cosa esce dal tutto! ;)