[C con Clase] Manipulación de imágenes

Javier Cancio del Busto sepholin en gmail.com
Jue Ago 27 21:29:38 CEST 2009


Hola Zaka,

Muchísimas gracias por los enlaces y tus comentarios ;)

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.

Gracias de nuevo

El 27 de agosto de 2009 20:57, Zakariae El-Abdelouarti <shanatorio en gmail.com
> escribió:

> Hola Javier,
>
> Lo importante no es tener una biblioteca para leer o escribir imágenes
> en un formato, si no saber
> como está organizado el formato en si.
>
> Por ejemplo para meter un mensaje en un archivo en formato JPEG (en
> realidad el formato se llama
> JFIF) te recomiendo que leas el siguiente artículo:
>
> http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format
>
> En la sección que indica "File format structure" está indicada la
> relación de bytes que tiene que haber
> en una cabecera JFIF. Es MUY IMPORTANTE no manipular esa cabecera, ya
> que en otro caso la propiedad
> principal de la Esteganografía se perdería (se notaría que la imagen
> ha mutado porque ya no seríe tal imagen).
>
> Una vez que estás situado en la parte del archivo que corresponde a
> los bytes de imagen es cuando empezarías
> a escribir de byte en byte (char) o de word en word (short int).
>
> Yo hice un programa que ocultaba un mensaje en una imagen de formato
> JFIF de la siguiente manera.
>
> Primero pasaba 21 KiloBytes (esto fue impuesto por el enunciado de la
> práctica) del archivo, con lo que estaba
> seguro de que no escribía en la cabecera. Después escribía dos bits en
> cada dos bytes de la imagen, de la
> siguiente manera (ESPERO QUE LO VEAS BIEN):
>
> Byte de mensaje:
>                                             x7 x6 x5 x4   x3 x2 x1 x0
>
>                                                              |    |
>  |    |
>
>                      _________________|    |    |    |
>
>                     |                                             |
>  |    |
>
>                     |   __________________|    |    |
>
>                     |   |
>  |    |
>
>                     |   |                      __________ |   |
>
>                     |   |                      |    __________|
>
>                     |   |                      |    |
> Bytes de imagen codificada:                        ???? ??x7x6    ????
> ??x5x4 ...........................................................
>
>     ^^^^^^^^^^^^^
>                                               _________________|
>                                 ______|______
> En cada grupo de 16 bits (2 bytes) yo introducía dos bits en la parte
> de menos peso, para que así no se notara a la hora de ver la imagen.
>
> Yo no estoy seguro que la cabecera de un fichero JFIF sea de 21KB, ya
> que en el artículo que yo te he mandado deja muy claro que la
> parte donde se guarda el "Thumbnail" es variable (3 x tw x th).
>
> Esta forma de hacer las cosas me funcionó con algunas imágenes y no con
> otras.
>
> PD: Quizá la librería libjpeg/libpng pueda ayudarte, pero yo no se
> nada sobre la misma:
> http://en.wikipedia.org/wiki/Libjpeg
>
> http://www.ijg.org/
>
> http://www.libpng.org/pub/png/libpng.html
>
> http://en.wikipedia.org/wiki/Libpng
>
> Espero que esto te guíe un poco, y si tienes más preguntas no dudes en
> realizarlas.
>
> Saludos.
>
> Zaka.
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
======================
 Javier Cancio del Busto
======================
 http://tuxete.wordpress.com
======================
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090827/507b6c47/attachment.html>


Más información sobre la lista de distribución Cconclase