Hola Zaka,<br><br>Muchísimas gracias por los enlaces y tus comentarios ;)<br><br>A parte de esos, me estoy leyendo un artículo sobre la estructura de los pixel, para manipular cada uno como un array de 3 dimensiones.<br><br>
Gracias de nuevo<br><br><div class="gmail_quote">El 27 de agosto de 2009 20:57, Zakariae El-Abdelouarti <span dir="ltr"><<a href="mailto:shanatorio@gmail.com">shanatorio@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola Javier,<br>
<br>
Lo importante no es tener una biblioteca para leer o escribir imágenes<br>
en un formato, si no saber<br>
como está organizado el formato en si.<br>
<br>
Por ejemplo para meter un mensaje en un archivo en formato JPEG (en<br>
realidad el formato se llama<br>
JFIF) te recomiendo que leas el siguiente artículo:<br>
<br>
<a href="http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format" target="_blank">http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format</a><br>
<br>
En la sección que indica "File format structure" está indicada la<br>
relación de bytes que tiene que haber<br>
en una cabecera JFIF. Es MUY IMPORTANTE no manipular esa cabecera, ya<br>
que en otro caso la propiedad<br>
principal de la Esteganografía se perdería (se notaría que la imagen<br>
ha mutado porque ya no seríe tal imagen).<br>
<br>
Una vez que estás situado en la parte del archivo que corresponde a<br>
los bytes de imagen es cuando empezarías<br>
a escribir de byte en byte (char) o de word en word (short int).<br>
<br>
Yo hice un programa que ocultaba un mensaje en una imagen de formato<br>
JFIF de la siguiente manera.<br>
<br>
Primero pasaba 21 KiloBytes (esto fue impuesto por el enunciado de la<br>
práctica) del archivo, con lo que estaba<br>
seguro de que no escribía en la cabecera. Después escribía dos bits en<br>
cada dos bytes de la imagen, de la<br>
siguiente manera (ESPERO QUE LO VEAS BIEN):<br>
<br>
Byte de mensaje:<br>
                                             x7 x6 x5 x4   x3 x2 x1 x0<br>
<br>
                                                              |    |<br>
 |    |<br>
<br>
                      _________________|    |    |    |<br>
<br>
                     |                                             |<br>
 |    |<br>
<br>
                     |   __________________|    |    |<br>
<br>
                     |   |<br>
 |    |<br>
<br>
                     |   |                      __________ |   |<br>
<br>
                     |   |                      |    __________|<br>
<br>
                     |   |                      |    |<br>
Bytes de imagen codificada:                        ???? ??x7x6    ????<br>
??x5x4 ...........................................................<br>
<br>
     ^^^^^^^^^^^^^<br>
                                               _________________|<br>
                                 ______|______<br>
En cada grupo de 16 bits (2 bytes) yo introducía dos bits en la parte<br>
de menos peso, para que así no se notara a la hora de ver la imagen.<br>
<br>
Yo no estoy seguro que la cabecera de un fichero JFIF sea de 21KB, ya<br>
que en el artículo que yo te he mandado deja muy claro que la<br>
parte donde se guarda el "Thumbnail" es variable (3 x tw x th).<br>
<br>
Esta forma de hacer las cosas me funcionó con algunas imágenes y no con otras.<br>
<br>
PD: Quizá la librería libjpeg/libpng pueda ayudarte, pero yo no se<br>
nada sobre la misma:<br>
<a href="http://en.wikipedia.org/wiki/Libjpeg" target="_blank">http://en.wikipedia.org/wiki/Libjpeg</a><br>
<br>
<a href="http://www.ijg.org/" target="_blank">http://www.ijg.org/</a><br>
<br>
<a href="http://www.libpng.org/pub/png/libpng.html" target="_blank">http://www.libpng.org/pub/png/libpng.html</a><br>
<br>
<a href="http://en.wikipedia.org/wiki/Libpng" target="_blank">http://en.wikipedia.org/wiki/Libpng</a><br>
<br>
Espero que esto te guíe un poco, y si tienes más preguntas no dudes en<br>
realizarlas.<br>
<br>
Saludos.<br>
<br>
Zaka.<br>
<div><div></div><div class="h5"><br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>======================<br>  Javier Cancio del Busto<br>======================<br>  <a href="http://tuxete.wordpress.com">http://tuxete.wordpress.com</a> <br>======================<br>