Subir un archivo
  1. base64hub
  2. Herramientas de imagen
  3. JPG a Base64

JPG a Base64

Suelta un JPG o JPEG y obtén su Base64 o un URI data:image/jpeg. Las fotos del teléfono son grandes, así que puedes reducirlas y quitar los datos EXIF, GPS incluido, antes de codificar.

Gratis sin registro, sin límites Local no se sube nada EXIF quita el GPS y los datos de la cámara Actualizado 27 oct 2026
Suelta una imagen aquí, pégala o selecciónala
Entrada –Salida –Tamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo convertir un JPG a Base64

  1. Suelta un archivo .jpg o .jpeg, elígelo con el selector de archivos o pega una imagen copiada con Ctrl+V.
  2. Para fotos recién sacadas de una cámara o un teléfono, pon un Ancho máx. (por ejemplo 1200) y ajusta la Calidad. El valor por defecto es 85 %.
  3. Marca Quitar metadatos (EXIF) si la foto se va a compartir o publicar.
  4. Elige Salida como: Data URI es la opción por defecto y Base64 simple es lo que quieren la mayoría de las API. Después, Copiar salida.

La vista previa muestra las dimensiones en píxeles y, tras recodificar, el nuevo tamaño del archivo, así que puedes probar varios ajustes y ver cómo baja la cifra.

Qué hay dentro del Base64 de un JPG

Todos los archivos JPEG empiezan por el marcador SOI FF D8 FF, así que todos empiezan por /9j/ en Base64. Los caracteres siguientes indican qué cabecera viene después:

El archivo empieza porEl Base64 empieza porOrigen típico
FF D8 FF E0 + JFIF/9j/4AAQSkZJRgeditores de imagen, exportaciones web, la mayoría de los convertidores
FF D8 FF E1 + Exif/9j/4 y luego caracteres variablescámaras y teléfonos (primero el bloque EXIF)
FF D8 FF DB/9j/2wcodificadores mínimos o archivos sin metadatos

Un JPEG de cámara lleva un bloque EXIF con el modelo del dispositivo, la hora de captura, la orientación y, si la ubicación estaba activada, las coordenadas GPS. Base64 no oculta nada de eso. Cualquiera que decodifique la cadena con Base64 a JPG obtiene el archivo original con los metadatos intactos.

Reducir las fotos antes de codificarlas

Una foto de un teléfono actual ocupa varios megabytes. En Base64 crece otro tercio, lo que es demasiado para una petición JSON, un archivo CSS o un correo HTML, y resulta lento en cualquier otro sitio.

Dos ajustes hacen casi todo el trabajo:

  • Ancho máx. fija el ancho máximo en píxeles. Reducir el ancho a la mitad deja el número de píxeles en una cuarta parte.
  • Calidad controla la compresión JPEG. Tiene efecto siempre que la foto se recodifica, es decir, con un Ancho máx., un formato en Convertir a o Quitar metadatos (EXIF) activado. Entre el 75 % y el 85 % la diferencia apenas se nota en una foto, mientras que el archivo queda mucho más pequeño que al 95–100 %.

Recodificar un JPEG siempre pierde algo de detalle, porque se decodifica y se vuelve a comprimir. Hazlo una sola vez, a partir del original, y evita pasar el resultado por el convertidor una segunda vez.

JPEG no tiene transparencia. Si conviertes a JPEG un PNG o WebP con fondo transparente, las partes transparentes se vuelven blancas. Quédate con PNG o WebP cuando necesites el canal alfa.

Dónde se usa el Base64 de un JPG

  • Subida de fotos mediante API JSON, incluidos los modelos de visión de IA que describen o analizan imágenes. Muchos reducen las imágenes grandes por su cuenta, así que enviar un JPEG más pequeño agiliza la petición sin una pérdida visible.
  • Miniaturas y placeholders incrustados en HTML, como una vista previa difuminada de 20 píxeles de ancho que se muestra mientras carga la imagen completa.
  • Documentos de un solo archivo, por ejemplo un informe HTML con unas pocas fotos incrustadas.

Para fotos grandes en un sitio web, sigue siendo mejor un archivo de imagen normal: se puede guardar en caché, cargar de forma diferida y servir en varios tamaños con srcset.

Redimensionar y codificar en Python

Pillow redimensiona y recodifica la foto en unas pocas líneas, y la biblioteca estándar se encarga del Base64. Pillow no copia el EXIF al archivo nuevo salvo que se lo pases explícitamente, así que esto también quita los metadatos:

import base64, io
from PIL import Image

with Image.open("photo.jpg") as im:
    im.thumbnail((1024, 1024))
    buf = io.BytesIO()
    im.save(buf, "JPEG", quality=80)

b64 = base64.b64encode(buf.getvalue()).decode("ascii")

Más sobre lectura de archivos y streaming en Base64 en Python.

Problemas habituales

  • La foto aparece girada. Muchos teléfonos guardan los píxeles en la orientación del sensor y ponen la rotación en una etiqueta EXIF. Los navegadores actuales aplican esa etiqueta y, cuando la herramienta redibuja una foto, conserva la orientación visible. El software que ignora el EXIF puede mostrar la orientación en bruto.
  • El Base64 es más largo de lo esperado. Mira el tamaño de entrada en el indicador. Una foto “pequeña” de una aplicación de mensajería puede tener aun así 3000 píxeles de ancho.
  • Una API rechaza la imagen. Confirma si quiere el prefijo data:image/jpeg;base64, o Base64 sin más, y envía image/jpeg como tipo, no image/jpg.

Preguntas frecuentes

¿En un data URI va image/jpg o image/jpeg?

image/jpeg. image/jpg no es un tipo registrado. Los navegadores muestran la imagen de todos modos porque analizan los bytes, pero las API que validan el tipo de medio pueden rechazarla.

¿Un JPG en Base64 sigue conteniendo mi ubicación GPS?

Sí, si el original la tenía. Base64 copia todos los bytes, EXIF incluido. Marca Quitar metadatos (EXIF) para eliminarlo; la foto se redibuja sin metadatos antes de codificarla.

¿Por qué el Base64 de mi JPG empieza por /9j/?

Todo JPEG empieza por los bytes FF D8 FF, y esos tres bytes se codifican exactamente como /9j/. Una cadena que empieza de otra forma no es un JPEG, diga lo que diga el nombre del archivo.

¿Cómo acorto el Base64 de una foto?

Reduce los píxeles y la calidad antes de codificar. Un Ancho máx. acorde al tamaño en pantalla y una Calidad de alrededor del 75–85 % reducen una foto de teléfono mucho más que cualquier cosa que puedas hacerle al propio Base64.