Voltear y rotar imágenes

Rota fotos en pasos de 90°, reflójalas en horizontal o vertical y procesa el lote a PNG, JPEG o WebP con las dimensiones al instante.

Girar y voltear se ejecuta localmente en tu navegador. Tus imágenes nunca salen del dispositivo.

Volteo y rotación por lotes

Suelta aquí tus imágenes

PNG, JPEG, WebP o GIF — añade tantas como quieras. Haz clic para elegir.

Cómo funciona

Cada imagen se decodifica una vez en un elemento Image. Cada fila guarda un estado pequeño — un contador de cuartos de giro más dos banderas de volteo — y los botones lo modifican en el sitio, así que puedes acumular operaciones (derecha, derecha, volteo-H) mientras el contador W × H se actualiza al momento. Las descargas procesan ese estado en un único paso de canvas.

La matemática de la transformación
Para un giro de r grados con salida ow × oh, la secuencia en canvas es translate(ow/2, oh/2), rotate(r), scale(±1, ±1) y drawImage(img, −w/2, −h/2). Como el origen queda en el centro del canvas, esos desplazamientos de media anchura y media altura enmarcan perfectamente el rectángulo girado a 90°, 180° y 270°.
Por qué W × H se intercambia
A 90° y 270° el borde largo pasa a ser vertical, así que el canvas de salida se construye con ancho = alto original y alto = ancho original. La insignia de cada fila lo recalcula al instante, y por eso una captura horizontal se vuelve vertical sin recortar nada.
Operaciones incrementales sobre ejes de pantalla
Tras un número impar de cuartos de giro, el eje horizontal del archivo es ahora vertical en pantalla. Por eso un clic en Horizontal cambia la bandera vertical cuando la rotación es 90°/270°: «Horizontal» describe siempre la dirección que ves, no la almacenada, y cualquier combinación de los cuatro botones aterriza en una de las ocho simetrías del rectángulo.

Preguntas frecuentes

¿Es un giro de 90° sin pérdidas?

A nivel de píxeles, sí — cada píxel de origen se copia a su nueva posición, sin recortes ni remuestreo, así que la geometría es exacta. La advertencia honesta es la codificación: toda exportación (PNG, JPEG, WebP) es una codificación nueva, y JPEG/WebP además cuantizan según la calidad elegida. Girar un JPEG ya comprimido a PNG queda perfecto en píxeles pero pesa más; girar JPEG→JPEG en alta calidad es una segunda generación con pérdida, que casi nadie nota pero ocurre.

¿Puedo girar en ángulos arbitrarios?

No — solo pasos de 90°. Un giro libre exigiría remuestrear cada píxel sobre una cuadrícula nueva y rellenar los huecos de las esquinas, lo que suaviza la imagen. Los cuatro giros rectos son justo lo que necesitan sensores de teléfono, formularios y páginas escaneadas, y mantienen dimensiones en píxeles enteros.

¿Los volteos se combinan bien con las rotaciones?

Sí. Cada botón se aplica de forma incremental sobre el estado actual, y los volteos horizontal/vertical se interpretan en pantalla — tras girar 90°, el botón Horizontal voltea según lo que ahora ves horizontal, como esperaría cualquier espectador y no según los ejes internos del archivo.

¿Cuántas imágenes puedo procesar a la vez?

No hay un límite estricto, pero todo se mantiene decodificado en memoria. Una docena de fotos típicas de móvil va bien; cien archivos de 48 megapíxeles pueden agotar una pestaña del navegador. Descarga cada resultado, usa Quitar en las filas terminadas y el ZIP se construye bajo demanda en el momento del clic.

¿Se sube algo a un servidor?

No. La decodificación, la matemática de canvas, la recodificación y el ensamblaje del ZIP ocurren en tu dispositivo. La única dependencia de red es la biblioteca JSZip servida por CDN — si no está disponible (sin conexión o bloqueada), la herramienta lo avisa y las descargas individuales siguen funcionando.