Autor Tema: bmp - bytes - VB  (Leído 4105 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado felipito1

  • PIC16
  • ***
  • Mensajes: 118
bmp - bytes - VB
« en: 29 de Agosto de 2004, 05:30:00 »
Como hago para descomponer un archivo bmp en bytes, como funciona esto... ???
En otras palabras con una foto, la paso a .bmp y luego esta informaciòn como la descompongo en bytes. para luego enviarla por un puerto serie o paralelo en VB, cual puerto es màs aconsejable para que sea màs ràpido y pràctico en hard y soft ??
Que otro formato fuera del .bmp es aconsejable.. el .jpg,  .tiff o cual.. en .bmp es muy grande el archivo.

                    Gracias

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: bmp - bytes - VB
« Respuesta #1 en: 29 de Agosto de 2004, 23:57:00 »
Felipito, no sé si es que no entiendo bien tu pregunta, porque considero que es obvio. Un fichero BMP, como cualquier otro fichero, no es más que una sucesión de BYTES. Lo único que tienes que hacer para enviarlo por el puerto serie es abrir el fichero y leerlo secuencialmente, para ir enviando byte a byte vía serie. No sé si es que no te he entendido.

Por otra parte, dependiendo del uso que vayas a darle y la calidad que necesites, te recomiendo que lo conviertas a JPG. Es un formato que reduce bastante (muchísimo) el tamaño de un BMP casi sin pérdida de calidad. Es más, puedes regular esa pérdida de calidad a tu antojo para jugar con el tamaño final del fichero y adaptarlo a tu necesidad.

Desconectado felipito1

  • PIC16
  • ***
  • Mensajes: 118
RE: bmp - bytes - VB
« Respuesta #2 en: 31 de Agosto de 2004, 05:40:00 »
Gracias nocturno66, bàsicamente estoy diseñando un cartel electrònico con diodos LED, para visualizar gràficos y mensajes, el tamaño es de 200 x 100 pixel osea 20.000 leds, como descompongo el fichero bmp en bytes? (sigue siendo grande) y el jpg como lo paso a bytes para enviarlo vìa serie al cartel ??

Desconectado nechevel

  • PIC10
  • *
  • Mensajes: 24
RE: bmp - bytes - VB
« Respuesta #3 en: 22 de Octubre de 2004, 19:06:00 »




Gracias nocturno66, bàsicamente estoy diseñando un cartel electrònico con diodos LED, para visualizar gràficos y mensajes, el tamaño es de 200 x 100 pixel osea 20.000 leds, como descompongo el fichero bmp en bytes? (sigue siendo grande) y el jpg como lo paso a bytes para enviarlo vìa serie al cartel ??



Hola felipito1,

me gustaría saber si ya resolviste tu duda. Si es así, por favor cuéntanos como lo hiciste. Te agradecería cualqueir información al respecto.

Saludos. DivertidoDivertidoDivertido

Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
RE: bmp - bytes - VB
« Respuesta #4 en: 23 de Octubre de 2004, 19:40:00 »
Según lo que tengo entendido (no es nada seguro) el formato bmp lleva un encabezado que informa la cantidad de colores y resolución y después viene la serie de bits del valor en color de cada punto de la imagen barriendo horizontalmente.
Esta es la forma más fácil con los BMP"s sin compresión. Después viene el BMP con compresión RLE y el JPG. Estos dos por ser formatos comprimidos creo que son mucho más complicados porque para leerlos hay que conocer el algoritmo de descompresión. En el caso de los JPG, al tener compresión variable, debe ser bastante más complicado. Lo curioso del tema es que al descomprimir un JPG se obtiene practicamente un BMP, que es el formato más "puro", o sea, se obtiene el valor de color para cada píxel o punto lo que es igual a una ventaja en el caso de la transmisión del archivo para el caso del jpg (es más chico), pero en memoria, a lo que hay que descomprimir, creo que pesan lo mismo, agregando la complicación de tener que descomprimir.
Si tu matriz es de leds de un solo color (equivalente a monocromo o "blanco y negro"Giño lo ideal sería que te hicieses un software con una grilla de 100 * 200 e ir "tachando" lo que querés encender. En un segundo paso podrías ir mandando secuencias de 8 bits por el puerto serie con los 8 valores (on/off) de los próximos 8 leds y así ir recorriendo la matriz de tu pantalla.
En en una segunda versión más refinada de tu programa podrías hacer un conversor de imágenes a "formato matriz" y hacerlo automáticamente.

Esta me parece la forma más fácil de hacer tu proyecto ya que no tenés que desarrollar software complicado en tu pic y la parte más complicada se la dejás a VB que es mucho más fácil para todo esto.

Salu2.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: bmp - bytes - VB
« Respuesta #5 en: 24 de Octubre de 2004, 18:23:00 »
Hola Felipito... me creaste la duda... asi que me meti con el paint brush, configure IMAGEN ->  atributos  10 por 10 pixeles..
luego grabe el archivo en color blanco como dibujo9.bmp
lo pinte de negro, grabe como dibujo0.bmp
rojo---> dibujo2.bmp
verde---> dibujo5.bmp
azul----> dibujo6.bmp

con el ultraedit abri todos los archivos...

al pasar del blanco al negro... se ve perfectamente el encabezamiento... para todos los archivos igual...
luego vienen lor colores secuencialmente en byte segun RGB... es decir primero el color AZUL.... VERDE... ROJO...  aparecen 2 bytes 00  00 que seran el fin de cada linea... es bien visible en el blanco... Sonrisa Gigante
todos ocuparon 374 bytes....
10 X 10 pixel... 100
por 3 colores 300
mas 20 oo-oo de fin de linea 320
54 para el encabezamiento..


hay que seguir investigando...

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: bmp - bytes - VB
« Respuesta #6 en: 25 de Octubre de 2004, 00:23:00 »
Si no tenéis mucho problema con el inglés os recomiendo que miréis esta web http://www.elrincondelc.com/arts/bmp.zip

Describe meticulosamente la estructura de un BMP y le da forma en variables Struct de C, con lo que su portabilidad al PIC es todavía más fácil.