🌐 ES

🖼️ Convertidor de Imágenes Base64

Convierte imágenes a cadenas Base64 o restaura Base64 a imágenes.

📁
Haz clic o arrastra y suelta una imagen
GUIDE

Learn more

01

1. Qué es la codificación Base64

Base64 es un método de codificación que convierte datos binarios en cadenas ASCII. Permite representar archivos binarios como imágenes, audio y vídeo en formato de texto, lo que posibilita la transmisión de datos binarios a través de protocolos basados en texto como el correo electrónico, JSON y XML. Utiliza solo 64 caracteres ASCII (A-Z, a-z, 0-9, +, /) para representar todos los datos binarios. Es útil para insertar imágenes en línea en HTML mediante Data URL o para incluir imágenes en respuestas de API. Sin embargo, aumenta el tamaño original en aproximadamente un 33%.

02

2. Casos de uso de las imágenes Base64

Las imágenes Base64 se utilizan en diversos escenarios de desarrollo web. La inserción en línea de iconos pequeños como background-image en CSS reduce las solicitudes HTTP, mejorando la velocidad de carga de la página. Se usa en plantillas de correo electrónico para evitar el bloqueo de imágenes externas. Al desplegar páginas web completas como archivos HTML únicos, todas las imágenes pueden incluirse en Base64. En las API RESTful, las imágenes pueden incluirse directamente en las respuestas JSON sin necesidad de una carga de archivo independiente. También se usa al transmitir al servidor imágenes creadas con la API Canvas.

03

3. Formato Data URL

Data URL es un esquema para representar archivos como URL. Formato: data:[<mediatype>][;base64],<data>. Ejemplo: data:image/png;base64,iVBORw0KG... El mediatype especifica el tipo MIME, como image/png, image/jpeg, image/gif. ;base64 indica el método de codificación, seguido de la cadena Base64 real. Se puede usar directamente en etiquetas img de HTML como <img src="data:image/png;base64,...">. También se utiliza en CSS como background: url(data:image/svg+xml;base64,...). Los navegadores procesan las Data URL como URL normales para mostrar las imágenes.

04

4. Consideraciones de optimización del rendimiento

Se debe considerar el rendimiento al usar imágenes Base64. Las imágenes pequeñas (menos de 1-2 KB) se benefician de la inserción en línea frente a la sobrecarga de las solicitudes HTTP. Las imágenes grandes pueden ralentizarse debido al aumento de tamaño del 33% y la sobrecarga de análisis de Base64. Las imágenes Base64 no pueden aprovechar la caché del navegador, por lo que se descargan cada vez junto con el HTML/CSS. Las imágenes utilizadas con frecuencia deberían proporcionarse como archivos separados para permitir el almacenamiento en caché. La compresión Gzip es eficaz en las cadenas Base64, por lo que conviene habilitarla en los servidores. Es apropiado usar Base64 para imágenes decorativas o iconos, no para contenido crítico.

05

5. Consideraciones de seguridad

Existen riesgos de seguridad con las imágenes Base64. Al mostrar imágenes subidas por usuarios y convertidas a Base64, hay que tener cuidado con los ataques XSS. Las imágenes SVG son especialmente peligrosas porque pueden contener JavaScript. Los encabezados Content-Security-Policy pueden restringir el uso del esquema data:. Establece límites de tamaño de archivo para prevenir ataques de agotamiento de memoria. Valida los tipos de imagen para procesar solo los tipos MIME permitidos (image/png, image/jpeg). La verificación en el servidor debe confirmar que se trata de archivos de imagen reales y comprobar que no contienen código malicioso.

06

6. Conversión Base64 según el lenguaje de programación

La mayoría de los lenguajes de programación ofrecen codificación Base64 de forma nativa. JavaScript usa btoa() para codificar, atob() para decodificar, y la API FileReader para leer archivos como Base64. Python ofrece b64encode() y b64decode() en el módulo base64. PHP usa las funciones base64_encode() y base64_decode(). Java ofrece getEncoder() y getDecoder() a través de la clase java.util.Base64. Node.js codifica con Buffer.from(data).toString("base64") y decodifica con Buffer.from(base64, "base64"). Leer archivos de imagen y convertirlos a Base64 se puede implementar fácilmente con bibliotecas estándar en todos los lenguajes.