Foros del Web » Programación para mayores de 30 ;) » Programación General »

formato de imagenes

Estas en el tema de formato de imagenes en el foro de Programación General en Foros del Web. Alguien sabe la direccion de alguna pagina o manual donde pueda encontrar como esta el formato de los tipos de imagenes mas comunes (a lo ...
  #1 (permalink)  
Antiguo 12/04/2003, 21:34
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 2 meses
Puntos: 0
formato de imagenes

Alguien sabe la direccion de alguna pagina o manual donde pueda encontrar como esta el formato de los tipos de imagenes mas comunes (a lo menos bmp y jpg).
He visto como son los archivitos xpm que se generan con el gimp y entiendo que son una especie de bmp, pero quisiera saber como podria por ejemplo crear un bmp manualmente y comprimirlo este a jpg.
Bueno si saben diganme pls.
  #2 (permalink)  
Antiguo 14/04/2003, 02:46
 
Fecha de Ingreso: abril-2002
Mensajes: 438
Antigüedad: 22 años, 1 mes
Puntos: 2
Hola,

Hace mucho tiempo recuerdo que alguien ya preguntó algo parecido y le comenté que en www.freevbcode.com hay cosas hechas de lo que quieres. Una vez en la página busca proyectos introduciendo la cadena "jpg" y verás que salen dos visores de imagenes bastante buenos hechos en VB. En esos proyectos está muy pero que muy bien detallado como tratar con las imágenes. Eso sí, a simple vista no parece absolutamente nada sencillo. Yo en concreto, estuve revisando un poco el "VB Image Editor", pero sólo le eché un vistazo en plan aprender un poco, no me metí de lleno en el código, pero bueno, ahí tienes una buena referencia para lo que buscas.

Espero te ayude.

Saludos.
  #3 (permalink)  
Antiguo 14/04/2003, 09:08
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 2 meses
Puntos: 0
muchisimas gracias , voy a revisar la pagina ahorita mismo .

  #4 (permalink)  
Antiguo 14/04/2003, 22:29
 
Fecha de Ingreso: agosto-2002
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
En bmp se hace asi: Vos imaginate que tenes que representar la imagen la cual esta compuesta por un monton de puntos y donde cada punto tiene un color. Bueno a cada color le asignas un valor numerico que representa los datos de el color. Una vez que tenes esa cantidad de numeros se la comprime (en el bmp) mediante un metodo que se llama rle, que dicho asi nomas consiste en buscar cadenas iguales dentro de esa cadena de numeros y reemplazarla indicando la cantidad de elementos iguales por ejemplo si tenes 0aaaaaaaa12 pones 10 8a 11 12 hay varias formas de hacer eso.
Jpg es un poquito mas complicado. Yo igual te lo resumo de una forma mas facil asi cuando lo lees (que obviamente lo vas a tener que hacer para construir el programa ya tengas una idea). Vos imaginate que tomaras los puntos que componen la imagen de a 2 es decir formas grupos de 2 puntos consecutivos. Ves entonces que van a tener seguramente un valor parcecido, porque el color no cambia completamente entre un punto y otro es decir si el punto 1 vale 90 el 2 valdra 87 pero seguramente no 4. Por lo tanto cada par de puntos vos lo podrias representar en un grafico poniendo en una coordenada el valor del primero y en la otra el valor del segundo entonces te queda el punto como si fuera un vector. Tanto los colores claros como los oscuros les va a pasar eso que te decia, se van a parecer al de la lado, salvo exepciones (por ejemplo si es una cara cambiara mucho entre la piel y la ceja) pero en el resto de los puntos no por lo tantof fijate que en el dibujo quedan los puntos con valores parecidos en x y en y. Es decir como una nube de puntos en una diagonal. Ahora si vos dieras vuelta los ejes x e y hasta que el eje x quede en el centro de esa nube los puntos pasan a tener valores en una sola coordenada y valores casi nulos en la segunda, entonces se podria despreciar. Dicho asi no tiene mucho sentido la compresion, pero si en vez de tomar puntos solos tomas matrices de puntos (por 3 una para cada color basico) y haces ese cambio de base (que se llama transformacion lineal, para los que preguntan por que en informatica tenemos que estudiar eso si no lo usamos) bueno con eso podes hacer una compresion cada vez mas grande. En sinstesis lo que dicen la mayoria de los manuales es reemplazar grupos de puntos por un color promedio pero en realidad lo que se hace es eso que te decia yo. Bueno no hablo mas.
Chau
Leo
  #5 (permalink)  
Antiguo 17/04/2003, 19:53
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 2 meses
Puntos: 0


Gracias leoi, una explicacion como la tuya es presisamente la que buscaba, si sabes donde pudiera encontrarla o me pudieras dar en un documento una explicacion extendida y detallada sobre el tema me completarias el favor.
Y que diferencias habria en el formato entre un bmp de 24 bits, 256 colores, 16 colores y monocromaticos. ¿Los archivos bmp estan en binario o porque no se pueden analizar tan sencillamente con el block de notas como un xpm?
  #6 (permalink)  
Antiguo 17/04/2003, 20:05
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 2 meses
Puntos: 0
sdnsdlm cheque la pagina y el ejemplo "VB Image Editor" que mensionabas esta interesante (y es cierto complicado de analizar), pero lo que no me gusto es que hacen uso de una libreria (Intel JPG Library) que al parecer no es gratuita, snif por lo demas esta bien el ejemplo.
  #7 (permalink)  
Antiguo 17/04/2003, 21:15
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 2 meses
Puntos: 0
Yo tenia lo siguiente respecto al caso especifico de xpm y no se que tan diferente es de los bmps normales:

"Un archivo xpm consta de tres secciones: la cabecera, la tabla de colores y los datos del mapa de bits. La cabecera es la primera cadena de caracteres de la matriz. La cabecera puede ser como '16 16 4 1', donde los primeros dos numeros expresan la anchura y altura de la imagen, el tercer número es el número de colores definidos en la matriz de cadenas de caracteres y el cuarto es el numero de caracteres por color". En el ejemplo se indica que la imagen tiene una altura de 16 pixeles y una anchura de 16 pixeles. El tercer numero define el numero de cadenas despues de la cabecera que define los datos de colores, por ejemplo:
*************************
c None
B c #000000000000
Y c #FFFFFFFF0000
y c #999999990000
*************

que son las cuatro cadenas.
Cada linea de datos de color define un color de la imagen. Cada linea incluye el caracter que representa el color indicado en hexadecimal, None representa ausencia de color osea transparencia. En el ejemplo B representa el color negro, Y el amarillo y y un amarillo mas oscuro. Los colores en el ejemplo son de 8 bytes pero igual podrian ser de 4 bytes.
Los datos de imagen estan situados inmediatamente de los datos de color."
  #8 (permalink)  
Antiguo 17/04/2003, 22:03
 
Fecha de Ingreso: agosto-2002
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
Yo mucho mas no se

Hola ! Yo mucho mas de lo que te decia en realidad no se. El tema de los bits si. Obviamente para representar un color cuantos mas bits tenes mas amplia es la gama de colores que podes representar. Eso en cualquier sistema de numeracion y para cualquier cosa, es la base elevada al numero de posiciones, por ejemplo con 8 bits tenes 2 a la 8 es decir 256 representaciones posibles. Pasa que en el tema de los formatos graficos la cosa cambia un poco, como yo te decia tengo entendido que se forman matrices y esas cosas. Ademas tene en cuenta que en el jpg no estas representando el numero exacto de colores sino muchos colores menos. Eso lo tenes que buscar en algun buscador como google. Empeza a poner entre comillas por ejemplo "metodo rle" o lzw o formato jpg, compresion no se esas cosas te va ir apareciendo las especificaciones referentes a cada formato. Despues la forma de tratar los archivos no deberia ser tan complicada, pero es un tema largo, tenes que empezar a buscar por ahi.
Un saludo.
Leo
  #9 (permalink)  
Antiguo 18/04/2003, 17:55
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 2 meses
Puntos: 0
sale leoi , gracias de nuevo de todas formas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.