TextSorter

Arrastra y suelta una imagen aquí

o haz clic para buscar un archivo (PNG, JPG, SVG, WebP, GIF)

Vista previa de la imagen cargada

Resultado en Base64

Cómo Convertir una Imagen a Base64 Online

Una URI de datos en Base64 toma una imagen que normalmente viviría en su propio archivo y la comprime dentro de una cadena de texto, lo bastante pequeña como para caber en un atributo HTML, una declaración CSS o un campo JSON. En lugar de que tu navegador haga un viaje aparte al servidor para buscar logo.png, la imagen viaja incrustada dentro del propio documento que la necesita. Este conversor construye esa cadena por completo en tu propio dispositivo, así que puedes pasar de archivo de imagen a código listo para pegar en el tiempo que tarda un arrastrar y soltar.

El flujo de trabajo es deliberadamente corto. Suelta un archivo PNG, JPG, SVG, WebP o GIF en la zona de arrastre de arriba, o haz clic en ella para abrir el selector de archivos habitual. En cuanto el navegador termina de leer el archivo, aparece una vista previa y el cuadro de resultado en Base64 se rellena automáticamente, sin ningún botón de "convertir" que pulsar y sin recargar la página.

  1. Elige tu imagen. Arrastra un archivo desde tu escritorio o gestor de archivos hasta la zona de arrastre, o haz clic para buscar uno. Cualquier cosa que tu navegador pueda mostrar como imagen, puede codificarla.
  2. Deja que se decodifique automáticamente. La herramienta lee los bytes puros de tu archivo usando la API FileReader del propio navegador y los codifica en una cadena Base64 en el instante en que el archivo se carga.
  3. Elige un formato de salida. Usa el menú desplegable Formato de Salida para alternar entre una cadena de URI de datos sin formato, una declaración CSS background-image ya lista, o una etiqueta HTML img completa.
  4. Copia o descarga el resultado. Haz clic en Copiar Código para llevarte el texto exacto al portapapeles, o en Descargar Texto si la cadena es larga y prefieres guardarla como archivo para usarla más tarde.

Como todo el proceso corre como JavaScript dentro de tu propia pestaña del navegador, no hay paso de subida, no hay que esperar en ninguna cola de servidor, y el único límite es la memoria de tu propio ordenador.

Entendiendo la Sintaxis de las URI de Datos

Cada cadena Base64 que produce esta herramienta sigue el mismo patrón definido por el esquema de URI de datos: data:[tipo-mime];base64,[datos-codificados]. El prefijo data: le dice al navegador que esto no es una URL normal que apunta a otro sitio, sino el propio contenido, llegando incrustado. El tipo MIME que le sigue de inmediato, algo como image/png, image/jpeg, image/svg+xml o image/webp, le indica al navegador exactamente cómo interpretar los bytes que vienen después, para que renderice un PNG como PNG y un SVG como SVG en lugar de adivinarlo por una extensión de archivo que ya no existe.

La marca ;base64 indica la codificación usada para el contenido, y todo lo que sigue a la coma es la imagen en sí, traducida de binario puro al alfabeto de 64 caracteres formado por mayúsculas, minúsculas, dígitos, más y barra. Un pequeño favicon de 16 por 16 puede producir una cadena de apenas unos cientos de caracteres, mientras que una fotografía detallada puede extenderse a cientos de miles de caracteres, todos en una sola línea sin cortes.

ContextoSintaxis de Ejemplo
Fondo CSSbackground-image: url(data:image/png;base64,iVBOR...);
Etiqueta HTML img<img src="data:image/jpeg;base64,/9j/4AA...">
URI de datos SVG en líneadata:image/svg+xml;base64,PHN2ZyB4b...
Propiedad personalizada CSS--icono-cerrar: url(data:image/svg+xml;base64,...);

Esta herramienta detecta el tipo MIME y realiza la codificación de forma automática según el archivo que sueltes, así que nunca tienes que escribir ese prefijo a mano, pero reconocer el patrón ayuda cuando estás depurando por qué una cadena pegada en el contexto equivocado se niega a renderizarse.

El 33% de Sobrepeso: Por Qué Base64 Pesa Más Que el Archivo Original

La codificación Base64 agrupa los datos binarios originales en bloques de 3 bytes y traduce cada bloque a 4 caracteres de texto imprimibles. Esa proporción de 3 a 4 la fija la matemática de la propia codificación, no el formato de imagen ni la compresión aplicada, y significa que toda cadena Base64 pesa aproximadamente un 33% más que el archivo del que proviene, antes de cualquier compresión adicional como gzip o Brotli que el servidor pueda aplicar encima.

En la práctica, eso significa que un icono de 60 KB se acerca a los 80 KB una vez codificado, y una fotografía de 300 KB se dispara a más de 400 KB. Para un único icono pequeño, esa diferencia resulta invisible para el usuario. Repetida en una página llena de miniaturas incrustadas, o incluida en un archivo CSS que se envía a cada visitante en cada carga de página, ese sobrepeso se acumula hasta convertirse en un documento genuinamente más pesado que servir esas mismas imágenes como archivos separados.

Vale la pena recordar que esta expansión ocurre encima del archivo, no en su lugar. Convertir un JPEG a Base64 no lo comprime más, solo cambia cómo se representan como texto esos mismos bytes ya comprimidos, así que cualquier optimización de imagen, como redimensionar una foto o pasarla a un formato como WebP, debe hacerse antes de codificarla, nunca después.

Cuándo Incrustar una Imagen Ayuda (y Cuándo Perjudica) el Rendimiento

Cada imagen referenciada con <img src="..."> o un url(...) de CSS dispara normalmente su propia petición HTTP. En conexiones HTTP/1.1 antiguas, los navegadores solo podían abrir un puñado de conexiones simultáneas por dominio, así que una página con docenas de iconos pequeños sufría de verdad ese sobrecoste de peticiones, e incrustar esos iconos como cadenas Base64 eliminaba por completo esos viajes extra. Ese es el caso original a favor de incrustar imágenes, y sigue siendo válido para gráficos pequeños y decorativos que aparecen una vez y casi nunca cambian.

Las conexiones modernas HTTP/2 y HTTP/3 multiplexan muchas peticiones sobre una sola conexión, lo que debilita bastante el argumento original. Pedir diez archivos externos pequeños por HTTP/2 ya no resulta ni de lejos tan costoso como hace una década, mientras que la penalización del 33% de Base64 no ha desaparecido. Eso vuelve a inclinar la balanza hacia los archivos enlazados para la mayoría de las imágenes cotidianas, reservando la incrustación para casos donde evitar aunque sea una petición extra sigue importando, como gráficos principales que deben aparecer en el instante en que se procesa el HTML, o herramientas de un solo archivo que no pueden depender de una segunda petición de red.

Una regla práctica útil: incrusta lo muy pequeño, iconos, indicadores de carga, logotipos diminutos, por lo general por debajo de 5 a 10 KB, y enlaza todo lo demás. Una imagen grande incrustada también retrasa que el navegador termine de analizar el documento HTML o CSS que la rodea, porque tiene que leer toda la cadena codificada antes de seguir adelante, lo que puede aplazar el momento en que el resto de la página se vuelve visible.

Usar Imágenes Base64 en CSS

El destino más habitual de una imagen Base64 es una declaración background-image de CSS, que es exactamente lo que produce el formato de salida CSS en esta herramienta. Al elegir ese formato, tu cadena codificada queda envuelta en background-image: url('data:image/png;base64,...');, lista para pegar directamente en una hoja de estilos, un bloque <style> o un atributo style en línea.

Este patrón aparece constantemente para pequeños detalles visuales repetidos: una textura sutil de ruido detrás de una tarjeta, un icono personalizado que sustituye la viñeta por defecto de una lista, el estado marcado de una casilla o un botón de radio, o un separador decorativo en SVG entre secciones. Como la imagen viaja junto con el propio CSS, no hay nada extra que el navegador tenga que buscar una vez que la hoja de estilos ya cargó, algo importante para componentes que aparecen en el instante en que la página se renderiza, antes de que cualquier recurso con carga diferida haya tenido tiempo de llegar.

La contrapartida es que un CSS lleno de cadenas Base64 largas se vuelve notablemente más difícil de leer y mantener, y esa hoja de estilos inflada tiene que descargarse y analizarse por completo antes de que el navegador pueda aplicar cualquiera de los estilos que la siguen. Limitar las imágenes Base64 en CSS a recursos realmente pequeños, y usar una referencia normal url('/imagenes/foto.jpg') para cualquier cosa más grande, mantiene rápidas tanto la hoja de estilos como la propia página.

Imágenes Base64 en HTML y la Realidad de las Plantillas de Correo

Elegir el formato de salida HTML envuelve tu cadena codificada en una etiqueta lista para usar, <img src="data:image/png;base64,..." />, que funciona exactamente igual que una etiqueta de imagen normal en cualquier lugar donde un navegador renderice HTML, incluyendo informes de una sola página, documentos exportados y herramientas sin conexión que necesitan funcionar como un único archivo autocontenido, sin recursos externos de ningún tipo.

El correo electrónico es el único lugar donde este patrón merece verdadera precaución. Gmail y Apple Mail suelen renderizar sin problemas las imágenes Base64 incrustadas, pero las versiones de escritorio de Outlook usan el motor de renderizado de Word en lugar de un motor de navegador moderno, y ese motor con frecuencia elimina o directamente se niega a mostrar imágenes con URI de datos. Un correo de marketing construido alrededor de logotipos incrustados puede verse perfecto en una bandeja personal de Gmail y mostrar un icono de imagen rota a buena parte de los usuarios corporativos de Outlook. Para cualquier cosa enviada como correo masivo, una imagen alojada normalmente con un atributo alt bien escrito sigue siendo la opción segura por defecto, y Base64 conviene reservarlo para HTML cuyo renderizado controlas por completo, como una notificación dentro de tu propia aplicación, un PDF exportado o un recibo imprimible.

Fuera del correo, esta misma cualidad autocontenida resulta genuinamente útil: un único archivo HTML que incluye su propio logotipo e iconos como cadenas Base64 puede enviarse como adjunto, abrirse directamente desde un disco local o archivarse indefinidamente, todo sin un solo enlace de imagen roto, porque no existe ningún archivo externo que un futuro cambio de nombre o de ubicación pueda romper.

SVG y Base64: Cuándo la Codificación Realmente Ayuda

El SVG ocupa un lugar poco habitual en toda esta conversación porque un archivo SVG ya es texto plano, no datos binarios. Eso significa que puede incrustarse en un url() de CSS usando una codificación de URL normal en lugar de Base64, y un SVG codificado como URL suele pesar menos que ese mismo archivo pasado por Base64, porque la codificación de URL solo escapa un puñado de caracteres especiales en lugar de reescribir cada byte en un alfabeto de 4 caracteres.

Base64 sigue ganándose su lugar con el SVG en algunas situaciones concretas. Es la opción más sencilla siempre que el contexto que lo rodea no tolere las comillas, almohadillas y ángulos que contiene el marcado SVG crudo o codificado como URL, como dentro de una única cadena JSON, una columna de base de datos o un valor de propiedad personalizada de CSS donde escapar caracteres se vuelve incómodo. También funciona bien como atributo <img src="data:image/svg+xml;base64,...">', y esta herramienta produce exactamente ese formato de forma automática cuando sueltas un archivo SVG y eliges la salida HTML.

Lo que Base64 no puede hacer por el SVG es conservar su mayor ventaja: el estilo en vivo. Un SVG pegado directamente en tu HTML como marcado <svg> en línea puede cambiar de color de relleno con currentColor y CSS, reaccionar a :hover y manipularse con JavaScript, nada de lo cual es posible una vez que queda aplanado en una cadena Base64 opaca. Si necesitas un icono con tema personalizable, conserva el marcado SVG en línea. Si necesitas una referencia de imagen portable y opaca, codificarlo en Base64 es la decisión correcta, y esta herramienta hace esa conversión con un solo arrastre.

Compensaciones de la Caché del Navegador

Un archivo de imagen normal referenciado por URL obtiene su propia entrada en la caché HTTP del navegador, regida por las cabeceras Cache-Control que envíe el servidor. Visita diez páginas que referencien el mismo /logo.png, y el navegador descarga ese archivo exactamente una vez, y reutiliza la copia en caché en cada página siguiente durante todo el tiempo que la cabecera de caché lo permita, a veces durante meses.

Una imagen en Base64 no goza de ese privilegio. Como vive dentro del propio documento HTML o CSS en lugar de existir como recurso propio, se descarga, analiza y decodifica de nuevo cada vez que ese documento padre se carga, incluso entre páginas que reutilizan exactamente la misma imagen. No hay ninguna entrada de caché aparte que el navegador pueda reutilizar, porque en lo que respecta a la capa de caché no existe ningún recurso independiente, solo más bytes dentro de un documento que ya iba a descargar de todos modos.

Este es el argumento más fuerte contra incrustar cualquier cosa que aparezca más de una vez en un sitio. Un logotipo compartido, un conjunto de iconos repetido o un patrón de fondo usado en todo el sitio se sirve mucho mejor como archivo enlazado con una vida útil de caché larga, descargado una vez y reutilizado en todas partes, que como una cadena Base64 duplicada en cada página y hoja de estilos que lo necesite. Reserva la incrustación para imágenes genuinamente únicas de un solo documento, donde no hay con quién compartir una entrada de caché en primer lugar.

Usos Habituales de Este Conversor de Imagen a Base64

Los desarrolladores que construyen aplicaciones de una sola página o paneles internos usan Base64 para pequeños gráficos de marcador de posición e iconos de estado de carga que necesitan renderizarse antes de que termine de descargarse el paquete principal de JavaScript, ya que una URI de datos en línea se pinta al instante con el primer byte de HTML, sin esperar una segunda petición.

Cualquiera que genere informes sin conexión, PDF exportados o entregables HTML de un solo archivo recurre a Base64 para mantener un documento verdaderamente autocontenido, con su logotipo, gráficos o diagramas incrustados directamente en el archivo, de modo que nada se rompa cuando ese archivo se envíe por correo, se archive o se abra años después en una máquina sin acceso al alojamiento original de las imágenes.

Diseñadores y desarrolladores front-end usan el formato de salida CSS constantemente para pequeñas decoraciones de interfaz, estados personalizados de casillas y botones de radio, texturas de fondo sutiles y sustitutos de fuentes de iconos, en casos donde el recurso es lo bastante pequeño como para que el 33% de sobrepeso apenas se note, pero la petición ahorrada acelera de verdad el primer pintado de la página.

Y como toda la conversión ocurre localmente, quienes necesitan convertir algo sensible, un contrato firmado y escaneado, una foto de identificación privada, una captura de pantalla de un producto aún sin lanzar, usan esta herramienta precisamente porque nunca le pide a nada que salga de su propio dispositivo.

Por Qué Este Conversor Funciona Completamente en tu Navegador

Muchas herramientas de "convertir imagen a Base64" suben en silencio lo que sea que sueltes en ellas a un servidor, lo codifican allí y te devuelven la cadena. Ese viaje de ida y vuelta es invisible si estás convirtiendo un logotipo público, pero se convierte en una preocupación real en el momento en que la imagen es un documento firmado, una foto privada, una captura de pantalla con datos confidenciales o cualquier material de diseño aún no publicado que no querrías que estuviera, aunque fuera brevemente, en el servidor de otra persona.

Este conversor nunca hace ese viaje. Lee tu archivo usando la API FileReader integrada en el navegador, codifica los bytes con JavaScript que corre en tu propio dispositivo, y muestra el resultado, todo sin que una sola petición de red lleve tu imagen a ningún lado. Abre la pestaña de red de tu navegador mientras lo usas y no encontrarás tu archivo saliendo de la página. Eso también significa que no hay límite de tamaño impuesto por ningún servidor, ninguna cola de procesamiento en la que esperar, y ninguna dependencia de que una API de terceros siga funcionando; la conversión es exactamente tan rápida y tan disponible como lo sea tu propio ordenador.

Para equipos que manejan material de clientes, una identidad de marca todavía en desarrollo, o cualquier cosa cubierta por un acuerdo de confidencialidad, una herramienta puramente local elimina por completo la cuestión de la confianza, en lugar de pedirte que leas una política de privacidad y confíes en ella. Es el mismo razonamiento que lleva a los desarrolladores a ejecutar un formateador o un linter en local en vez de pegar código fuente propietario en un formulario web cualquiera.

Preguntas Frecuentes

¿Qué es una URI de datos en Base64 y cómo la lee el navegador?
Una URI de datos empaqueta un archivo directamente en una cadena de texto con el formato "data:[tipo-mime];base64,[datos-codificados]", así que en lugar de apuntar a un archivo separado, el navegador decodifica la cadena en el momento. El tipo MIME le indica al navegador qué está viendo, como image/png o image/svg+xml, y todo lo que sigue a la coma es el contenido de la imagen traducido a texto Base64.
¿Por qué la cadena Base64 es tanto más grande que mi imagen original?
La codificación Base64 convierte cada 3 bytes de datos binarios en 4 caracteres de texto, lo que infla el peso del archivo en aproximadamente un 33% antes de aplicar cualquier compresión adicional. Un PNG de 90 KB suele producir una cadena Base64 cercana a 120 KB, así que la comodidad de incrustar la imagen siempre tiene un costo real en tamaño.
¿Cuándo conviene incrustar una imagen con Base64 en vez de enlazar un archivo?
Base64 funciona muy bien para gráficos pequeños y reutilizados con frecuencia, como iconos, logotipos o pequeños detalles de interfaz, donde ahorrarse una petición HTTP adicional pesa más que la penalización del 33%. Para fotografías grandes, banners principales o cualquier imagen por encima de unos 5 a 10 KB, un archivo enlazado normal casi siempre es más rápido, porque el navegador puede almacenarlo en caché y reutilizarlo de forma independiente.
¿Puedo usar imágenes codificadas en Base64 dentro de correos HTML?
Depende mucho del cliente de correo. Gmail y Apple Mail suelen renderizar bien las imágenes Base64 incrustadas, pero Outlook de escritorio usa un motor de renderizado basado en Word que con frecuencia elimina o ignora por completo las imágenes con URI de datos, así que una imagen alojada con un atributo alt bien escrito sigue siendo la opción más segura para una campaña de correo masivo.
¿Base64 es una buena opción para archivos SVG en particular?
A veces, pero no siempre. Como un SVG ya es texto plano, un SVG codificado como URL en CSS suele pesar menos que el mismo archivo pasado por Base64, y pegar el propio marcado <svg> directamente en tu HTML te permite darle estilo con currentColor y CSS, algo que una cadena Base64 no permite. Base64 resulta útil sobre todo cuando necesitas el SVG dentro de un único atributo de datos opaco o una propiedad personalizada de CSS.
¿La caché del navegador sigue funcionando una vez convertida la imagen a Base64?
No, no de forma independiente. Un archivo de imagen enlazado obtiene su propia entrada en la caché HTTP del navegador y puede reutilizarse en cada página que lo referencie, mientras que una cadena Base64 vive dentro del documento HTML o CSS que la contiene, así que se descarga y decodifica de nuevo cada vez que ese documento se carga, aunque la imagen de fondo nunca cambie.
¿Existe un límite de tamaño de archivo en esta herramienta?
No hay ningún límite forzado por la propia herramienta, ya que todo ocurre en la memoria de tu navegador, pero las imágenes de origen muy grandes, por encima de unos 2 MB, pueden generar una cadena Base64 lo bastante larga como para ralentizar la pestaña o hacer que el cuadro de resultado se sienta lento al desplazarse. Para archivos de ese tamaño, un archivo enlazado es de todas formas la mejor opción.
¿Mi imagen es privada cuando uso este conversor?
Sí. Toda la conversión ocurre localmente usando la API FileReader integrada en el navegador, así que la imagen que sueltas en la herramienta nunca se sube, transmite ni almacena en ningún servidor. Eso hace que sea seguro convertir documentos escaneados, capturas de pantalla privadas o materiales de diseño aún sin publicar sin que ese contenido salga de tu dispositivo.
¿Cuál es la diferencia entre los formatos de salida Raw, CSS y HTML?
El formato Raw te da únicamente la cadena de URI de datos, lista para pegar donde tu proyecto espere una URL. El formato CSS envuelve esa misma cadena en una declaración background-image: url(...), y el formato HTML la envuelve en una etiqueta completa <img src="...">, así puedes copiar exactamente la sintaxis que necesita tu hoja de estilos o tu marcado sin editarla a mano.
¿Cuándo conviene evitar por completo la codificación Base64?
Evítala para fotografías grandes, imágenes de producto o cualquier cosa que un usuario pueda ver repetida en varias páginas, ya que un archivo enlazado permite que el navegador guarde en caché esa descarga y la reutilice en lugar de volver a pedir un bloque de texto inflado cada vez. También conviene evitarla en páginas donde cada kilobyte del HTML inicial importa para la velocidad de carga percibida, porque una cadena incrustada grande retrasa el momento en que el navegador termina de analizar el resto del documento.

Herramientas de Desarrollo Relacionadas

🔒 100% Privado y Local

Cada imagen se decodifica y codifica <strong>completamente en tu navegador</strong>. Nada se sube a ningún servidor. Tu imagen se queda en tu dispositivo.