Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Gorky en 15 Octubre 2007, 16:17 pm



Título: Manipulacion de BMP
Publicado por: Gorky en 15 Octubre 2007, 16:17 pm
Buenas foreros. A ver si me podeis echar una mano.
Me he estado informando sobre la estructura de una imagen BMP y por el momento lo que se es que esta compuesto por unos bits iniciales que contienen informacion como el peso, las dimensiones etc. y tras eso una matriz donde se indica el color de cada pixel.
Con todo esto quisiera saber como leer una imagen y guardar el valor de los pixeles dentro de una variable para una posterior edicio de ese valor.
Si ademas de esto que pregunto sabe alguien algo mas sobre manipulacion de BMP estaria muy agradecido.


Título: Re: Manipulacion de BMP
Publicado por: Timerlux en 15 Octubre 2007, 21:34 pm
Puedes explicar un poco que es lo que quieres, que es lo que quieres hacer


Título: Re: Manipulacion de BMP
Publicado por: Hendrix en 15 Octubre 2007, 21:49 pm
mmmmm....Esteganografia??? :rolleyes:

Bueno, te dire que si abres un BMP en blanco te sale todo lleno de F's, y si lo dejas en negro te sale todo 0's, eso son los Pixels en formato hexa, intenta hacer pruebas para saber si FF es un pixel o si es FFFF, supongo que es la primera, pero pruebalo.

Luego que quieres hacer?? cambiarlo para "esconder un mensage" o pintarlo en un picturebox??

Un Saludo  :)


Título: Re: Manipulacion de BMP
Publicado por: Hendrix en 15 Octubre 2007, 21:55 pm
Haciendo pruebas ya se como va.....mira, coge un bmp todo negro, y ve metiendo FF's, veras que empieza desde abajo, de izquierda a derecha y asi subiendo al llegar al final, aunque me lio, porque meti unas cuantas y al principio es rojo, al final es azul y en medio todo blanco (ya quedamos que FF era blanco)....ve haciendo pruebas, haber si encuentras algo, yo de momento te intentare buscar algo de info sobre este formato  :)

Editado:

Ya encontre algo, trabajan en grupos de 3 (FF FF FF), eso equivale a blanco  ;D Y ya se porque lo del azul y el rojo, porque el BMP se leia asi: (00 00 FF ) y eso es rojo  ;D



Título: Re: Manipulacion de BMP
Publicado por: Ferсhu en 15 Octubre 2007, 22:19 pm
Citar
Ya encontre algo, trabajan en grupos de 3 (FF FF FF), eso equivale a blanco  grin Y ya se porque lo del azul y el rojo, porque el BMP se leia asi: (00 00 FF ) y eso es rojo  grin


Solo si son de 24 bits. Es azul verde rojo, y el numero determina la intencidad.


Título: Re: Manipulacion de BMP
Publicado por: Gorky en 16 Octubre 2007, 09:40 am
Contesto a todos. Lo que voy buscando es practicar la esteganografia. Para ello necesito abrir el bmp y leerlo pixel por pixel. Tal y como explica Hendrix, los BMP estan en formato RGB, es decir, la union de tres valores que determinan la intensidad de cada color (rojo, verde, azul). Practicamente las aportaciones que habeis hecho las conocia ya. De todas maneras las agradezco. En lo que estoy interesado principalmente es en saber como poder leer esos valores desde VB.
Gracias de nuevo.


Título: Re: Manipulacion de BMP
Publicado por: Hendrix en 16 Octubre 2007, 10:53 am
Hay codigo en PsCode, pero supongo que no los querras, preguntale a Thor como hizo su programa esteganografico, a mi tambien me dio por hacer un prgorama asi y se lo pregunte, aunque no recuerdo la respuesta... :-\ :-\

Con lo que te dije y con esto creo que podras hacerlo:

http://easybmp.sourceforge.net/steganography.html



Título: Re: Manipulacion de BMP
Publicado por: Gorky en 16 Octubre 2007, 16:14 pm
Hendriҳ te agradezco el codigo que me ofreces. Leyendolo se entiende las lecturas que hace de la estructura y como va tomando de la cabecera los valores que necesita.
Mas o menos entiendo como hace la lectura de los bits de colores pero sigo sin saber hacerlo en VB.
Ahora voy a hacer una pregunta mas concreta: Si leo el BMP en modo binario que me va a leer por cada valor? Un bit? Un numero hexadecimal? O que es lo que lee?
Muchas gracias.


Título: Re: Manipulacion de BMP
Publicado por: Timerlux en 16 Octubre 2007, 20:53 pm
Yo de steganografia no controlo, pense que tal vez querias enviar Bitmaps por Winsock.

Suerte


Título: Re: Manipulacion de BMP
Publicado por: Ferсhu en 16 Octubre 2007, 21:46 pm
Citar
Lo que voy buscando es practicar la esteganografia. Para ello necesito abrir el bmp y leerlo pixel por pixel. Tal y como explica Hendrix, los BMP estan en formato RGB, es decir, la union de tres valores que determinan la intensidad de cada color (rojo, verde, azul). Practicamente las aportaciones que habeis hecho las conocia ya. De todas maneras las agradezco. En lo que estoy interesado principalmente es en saber como poder leer esos valores desde VB.
Gracias de nuevo.

Como leer pixeles del BMP en visual basic??

Simple, Abris un archivo BMP de forma binaria, lees los datos en forma de Byte, y solo usas los q estan despues de q termina la cabecera, osea dsp del byte Nº54, y de ahi de 3 en 3, por q cada 3 bytes forman un pixel de la foto, la suma de los 3 valores forma el color, y bueno luego haces lo q kieras con los datos. Si la foto es de una calidad menor a 24 bits y keres manipular colores vas a tener q usar operadores a nivel de Bits.

Espero q eso te sirva. Saludos!!


Título: Re: Manipulacion de BMP
Publicado por: Hendrix en 16 Octubre 2007, 21:58 pm
Exacto, es como a dicho...en realidad no es que sea muy dificil imlpementar un "Esteganografiador" en VB o en cualquier otro lenguage  :)


Título: Re: Manipulacion de BMP
Publicado por: Gorky en 16 Octubre 2007, 23:13 pm
Como leer pixeles del BMP en visual basic??

Simple, Abris un archivo BMP de forma binaria, lees los datos en forma de Byte, y solo usas los q estan despues de q termina la cabecera, osea dsp del byte Nº54, y de ahi de 3 en 3, por q cada 3 bytes forman un pixel de la foto, la suma de los 3 valores forma el color, y bueno luego haces lo q kieras con los datos. Si la foto es de una calidad menor a 24 bits y keres manipular colores vas a tener q usar operadores a nivel de Bits.

Espero q eso te sirva. Saludos!!

Solo me queda una cosa por saber. Cuando yo lea cada cada byte con que me voy a encontrar? Con un valor hexadecimal en formato "FF" (8 bits)? O con que?


Título: Re: Manipulacion de BMP
Publicado por: Ferсhu en 16 Octubre 2007, 23:30 pm
Citar
Solo me queda una cosa por saber. Cuando yo lea cada cada byte con que me voy a encontrar? Con un valor hexadecimal en formato "FF" (8 bits)? O con que?

Y si lees un byte obvio q te vas a encontrar con 8 bits jaja, depende cual estas leyendo, tenes q ir contando, puede ser rojo verde o azul.

Si no recuedo mal viene Azul, Verde, Rojo, Azul, Verde, Rojo, Azul, Verde, Rojo...etc

Depente el byte q lees es lo q obtenes, el pixel entero es la suma de azul+verde+rojo

Creo q es ese orden por q es Blue Green Red---> BGR q es al revez RGB y como siempre en memoria aparece todo al revez jajaj.


Saludos.


Título: Re: Manipulacion de BMP
Publicado por: Gorky en 17 Octubre 2007, 07:54 am
Creo que ya lo tengo todo solucionado. Con forme lo vaya implementando planteare mi dudas. Muchas gracias a todos. ;)