Un pequeño proyecto con Arduino, para probar todas las salidas con posibilidad de PWM (pulse width modulation), es como una salida parecida a analógica, aunque lo que estamos haciendo es enviar pulsos cuadrados, el valor medio de la tensión será la tensión analógica que buscamos.
Os acordáis de aquella serie de los 80, El Coche Fantástico, en la que podíamos ver unas luces que se desplazaban de derecha a izquierda dejando un rastro, en eso me basé.… Leer artículo completo
Hoy vamos a practicar a leer una imagen desde un archivo BMP desde C. Aunque existen muchas APIs disponibles que son capaces de hacerlo, y mucho mejor que lo que voy a plantear (puesto que nos limitaremos a BMPs sin compresión y a 24bits por pixel), es un buen ejercicio para leer archivos con un formato especificado y documentado.
Para este tipo de archivos, tendremos dos cabeceras disponibles, la primera será la cabecera de fichero, y la segunda, la cabecera de información de imagen, que las definimos aquí:
typedefstruct bmpFileHeader { /* 2 bytes de identificación */ uint32_t size;/* Tamaño del archivo */ uint16_t resv1;/* Reservado */ uint16_t resv2;/* Reservado */ uint32_t offset;/* Offset hasta hasta los datos de imagen */ } bmpFileHeader;
typedefstruct bmpInfoHeader { uint32_t headersize;/* Tamaño de la cabecera */ uint32_t width;/* Ancho */ uint32_t height;/* Alto */ uint16_t planes;/* Planos de color (Siempre 1) */ uint16_t bpp;/* bits por pixel */ uint32_t compress;/* compresión */ uint32_t imgsize;/* tamaño de los datos de imagen */ uint32_t bpmx;/* Resolución X en bits por metro */ uint32_t bpmy;/* Resolución Y en bits por metro */ uint32_t colors;/* colors used en la paleta */ uint32_t imxtcolors;/* Colores importantes.
Si te ha gustado el sitio, te ha resultado útil o simplemente quieres colaborar con el sitio para que siga compartiendo contenidos, invítame a un café, una pizza, una ensalada, o lo que se te ocurra.Te lo agradeceré eternamente :)
¡Atención! Este sitio utiliza cookies propias y de terceros para mejorar la experiencia de usuario, Si continúa la navegación en el sitio, asumo que estás de acuerdo con esto, aunque siempre puedes desactivar las cookies en tu navegador. AceptarLeer más
Últimos comentarios