Respuesta breve

Las filas de píxeles de un BMP pueden comenzar abajo o arriba. Inspeccione la altura con signo y la cabecera, use una muestra con orientación visible y compruebe los PNG y JPG convertidos sin ocultar un fallo del decodificador con un volteo manual.

Probar herramientas

BMP → PNG

Abrir herramienta

Reconocer las dos direcciones de filas en BMP

Los datos de un mapa de bits independiente del dispositivo de Windows no siempre se almacenan desde la fila visual superior hasta la inferior. En un caso habitual de BITMAPINFOHEADER, una altura positiva describe un mapa de bits de abajo arriba cuyo bloque de píxeles comienza por la última línea visual. Una altura negativa puede describir un mapa de arriba abajo que empieza por la primera línea. El decodificador debe interpretar el signo y colocar cada fila en las coordenadas de presentación correctas; si trata todos los bloques como si empezaran arriba, el resultado puede quedar volteado verticalmente.

Prepare una fuente inequívoca: escriba TOP junto al borde superior, BOTTOM junto al inferior y añada una figura asimétrica en un solo lado. Anote el ancho, la altura con signo, la profundidad de bits y la compresión de la cabecera y abra el BMP original en varios visores. Si únicamente uno lo invierte, su decodificador es el principal sospechoso. Si todos coinciden, el programa creador quizá escribió las filas en el orden equivocado o asignó un signo que no corresponde al bloque de píxeles.

  • Inspeccionar el signo de la altura
  • Usar un patrón de orientación asimétrico
  • Comparar varios decodificadores BMP

El signo de la altura puede expresar la dirección de las filas, no solo la cantidad absoluta de píxeles.

Separar el orden de filas de otros problemas de orientación

Un volteo vertical causado por las filas no equivale a la rotación de una cámara ni a un problema de Exif Orientation. No diagnostique un flujo BMP como si fuera un flujo JPEG. Si el texto sigue leyéndose de izquierda a derecha pero la parte superior y la inferior intercambian sus posiciones, revise primero el orden de filas. Una rotación de noventa grados, un espejo horizontal o una combinación de transformaciones apunta más bien al programa de captura, a una conversión anterior o a una operación adicional durante la visualización.

Algunas API de captura de pantalla y aplicaciones antiguas copian memoria DIB a un archivo BMP y asocian el signo incorrecto con la matriz de filas. Cambiar la extensión o voltear manualmente la imagen final solo oculta el síntoma de ese archivo. Registre la aplicación de origen, cada paso intermedio y el conversor final, y compare la imagen después de cada etapa. Si puede generar una muestra correcta y otra defectuosa a partir del mismo patrón, compare sus cabeceras, sus desplazamientos y las primeras filas de datos.

  • Distinguir volteos de rotaciones
  • Trazar cada etapa de creación y conversión
  • Comparar cabeceras correctas y defectuosas

Comprobar el relleno de fila y el desplazamiento de píxeles

Las líneas de exploración de BMP pueden incorporar bytes de relleno para respetar la alineación. Si el decodificador avanza solo el número de bytes visibles en vez del tamaño completo de la fila rellenada, es más probable que aparezcan deriva diagonal, bandas de color o líneas truncadas que un volteo limpio. Compruebe el desplazamiento hasta los datos de píxeles, la profundidad de bits, el ancho y el cálculo de bytes por fila. Los anchos que no coinciden cómodamente con el límite de almacenamiento revelan estos errores mejor que las dimensiones alineadas.

Los BMP con paleta o compresión añaden más condiciones. El éxito con una muestra de 24 bits sin comprimir no demuestra compatibilidad universal. Si las entradas reales incluyen paletas de 1, 4 u 8 bits, píxeles de 16 o 32 bits, canales parecidos a alfa o variantes comprimidas, pruebe cada clase utilizada. No adivine nuevos desplazamientos ni parchee bytes directamente. Normalmente es más seguro conservar la fuente, decodificarla con una implementación conforme y escribir una salida estándar nueva.

  • Calcular el tamaño rellenado de cada fila
  • Probar anchos que no se alineen por sí solos
  • Cubrir las profundidades y paletas reales

La deriva diagonal o las filas coloreadas suelen indicar un error de relleno o desplazamiento, no solo un orden inverso.

Comparar PNG y JPG según el uso previsto

Convertir BMP a PNG proporciona una referencia sin pérdidas adecuada para comprobar orientación, bordes nítidos y colores exactos. JPG introduce compresión con pérdidas y no conserva un canal alfa, por lo que resulta menos útil para diagnosticar texto diminuto o píxeles de contorno. Verifique primero el PNG. Genere un JPG solo si el destino lo requiere y trate la calidad JPEG, el submuestreo de color y la composición de un fondo como decisiones diferentes del orden de filas.

Muestre el BMP, el PNG y el JPG con las mismas dimensiones y compare las cuatro esquinas, la primera fila, la última y las marcas de orientación. No se limite a comprobar que la imagen parece derecha: busque una línea ausente, un cambio de color debido al relleno o una alteración del alfa. Si el conversor corrige automáticamente una fuente incoherente, documéntelo. Otro programa puede interpretar esa misma fuente de otra manera aunque la primera salida parezca correcta.

  • Usar PNG como referencia de diagnóstico
  • Comparar la primera y la última fila
  • Documentar cualquier corrección automática

Aprobar tipos BMP representativos de principio a fin

Cree un conjunto con archivos de arriba abajo y de abajo arriba, varios anchos, imágenes con paleta y las variantes de 24 o 32 bits utilizadas en producción. Procese cada uno mediante la herramienta BMP a PNG o BMP a JPG real y abra los resultados en la aplicación de destino y en un visor independiente. Confirme parte superior e inferior, dimensiones, color, tratamiento de alfa y filas completas en los bordes. Use nombres nuevos y sumas de comprobación para impedir que una caché muestre una versión anterior.

Registre la cabecera original, la aplicación creadora, la versión del conversor, los ajustes de salida y el entorno de prueba. No repare un derivado fallido volteándolo y sobrescribiéndolo; vuelva a la fuente y decodifíquela correctamente. Para la comprobación final, suba al servicio de entrega tanto el patrón marcado como una imagen empresarial real, descargue las versiones servidas y compare sus bordes. Inicie la conversión por lotes únicamente cuando todas las clases necesarias hayan superado la prueba.

  • Probar las dos direcciones de filas
  • Evitar cachés de vista previa antiguas
  • Inspeccionar el archivo descargado del servicio

El patrón de orientación y un BMP real deben superar la prueba antes de convertir una carpeta completa.

Puntos clave

  • En estructuras DIB habituales, una altura positiva puede indicar filas de abajo arriba y una negativa, filas de arriba abajo.
  • Un decodificador que ignore el signo puede voltear verticalmente la imagen o producir resultados distintos entre aplicaciones.
  • Una muestra asimétrica con marcas de orientación y la lectura de la cabecera ayudan a separar este fallo de una rotación o de un problema de captura.
  • Después de convertir, conviene verificar orientación, dimensiones, color, relleno de filas y bordes en el sistema que recibirá el archivo.

Preguntas frecuentes

¿Por qué puede un BMP guardar primero la fila inferior?

Los diseños DIB tradicionales pueden usar una matriz de abajo arriba con altura positiva, y el decodificador reconstruye el orden visual de arriba abajo.

¿Una altura BMP negativa siempre indica corrupción?

No. En las cabeceras compatibles, una altura negativa puede indicar intencionadamente un mapa de bits de arriba abajo.

¿Puedo limitarme a voltear el resultado en un editor?

Eso puede arreglar un archivo visible, pero deja sin resolver la incoherencia del decodificador o de la fuente y el fallo puede repetirse.

¿La deriva diagonal también se debe al orden de filas?

Con mayor frecuencia apunta a un tamaño rellenado o un desplazamiento incorrectos, que deben revisarse junto con el ancho y la profundidad.

¿Cuál es la comprobación final de conversión?

Convierta un patrón marcado y un BMP real y compare orientación, filas de borde, dimensiones y color en los archivos que entrega el servicio.

Fuentes y referencias

  1. Microsoft Learn — Device-Independent Bitmaps
  2. Microsoft Learn — BITMAPINFOHEADER Structure
  3. Microsoft Learn — BMP Format Overview