Conversor de Imágenes

Convierte una imagen entre JPG, PNG, y WebP. Calidad ajustable para formatos con pérdida, todo ocurre en tu dispositivo.

¿Solo convirtiendo JPG a PNG? Prueba la página dedicada de JPG a PNG.

Haz clic para elegir una imagen, o arrástrala aquí

JPG, PNG, WebP. Se queda en tu dispositivo, no se sube nada. Selecciona varias para convertir en lote.

Tu imagen convertida aparecerá aquí una vez generada.

PNG no tiene pérdida (archivos más grandes, admite transparencia). JPEG y WebP tienen pérdida con un control deslizante de calidad (archivos más pequeños, sin transparencia para JPEG). WebP suele superar a JPEG a la misma calidad visual, pero JPEG tiene la mayor compatibilidad.

Cómo funciona

Tu imagen se carga a través de una URL de objeto local (URL.createObjectURL), se decodifica con el propio decodificador de imágenes del navegador, se dibuja en un canvas fuera de pantalla a su resolución natural completa, y se vuelve a codificar con canvas.toBlob en el formato y calidad que elegiste. Un detalle que se maneja por ti: JPEG no tiene canal alfa, así que antes de dibujar, el canvas se rellena de blanco cuando JPEG es el destino. Sin ese paso, las áreas transparentes de un PNG saldrían negras. El control de calidad solo aplica a JPEG y WebP; la codificación PNG no tiene pérdida y lo ignora.

Un efecto secundario del ida y vuelta por canvas que vale la pena conocer en cualquier caso: la salida solo contiene píxeles. Los metadatos EXIF, el modelo de cámara, las marcas de tiempo, y las coordenadas GPS incrustadas de las fotos de teléfono no sobreviven a la recodificación. Eso convierte a este conversor en una ganancia silenciosa de privacidad antes de compartir una foto públicamente, y algo a tener en cuenta si realmente necesitabas los metadatos (conserva el original en ese caso). Los navegadores aplican el indicador de orientación EXIF al decodificar, así que las fotos de teléfono tomadas de lado siguen saliendo correctamente rotadas.

La conversión, el modo por lotes, e incluso el empaquetado en .zip (ensamblado byte a byte en JavaScript) se ejecutan todos en tu navegador. Abre la pestaña Red de las DevTools y convierte algo: ninguna petición transporta la imagen, por eso tampoco hay límite de tamaño de archivo más allá de la memoria de tu máquina.