Codificar imagen en Base64 en Python

Convierta la imagen a una cadena codificada en Base64. Se admiten SVG, JPG, JPEG, PNG, BMP, GIF, TIFF, ICO, IFIF, WEBP y otros formatos de imagen.

Codificación Base64

Base64 es un esquema de codificación que convierte datos binarios en texto ASCII, utilizado a menudo para transferir datos a través de Internet. Cuando una imagen se convierte a Base64, el resultado es una cadena de letras latinas, números y dos caracteres: “+” y “/”. Los navegadores pueden interpretar estos datos codificados sin problemas. En otras palabras, Base64 es una codificación de binario a texto que se puede incrustar en varios formatos, como JSON, XML, URI de datos o CSS.

Base64 se usa ampliamente para incrustar imágenes u otros recursos binarios directamente en archivos HTML o CSS. Esto elimina la necesidad de realizar solicitudes web adicionales, ya que la imagen ya está incluida en el documento HTML. Sin embargo, Base64 es más adecuado para imágenes pequeñas; Las imágenes grandes codificadas en Base64 pueden inflar el HTML, lo que provoca un rendimiento más lento. También cabe señalar que Google nunca indexará una imagen Base64 porque no aparece en las búsquedas de imágenes.


Convertir imagen a Base64 en línea

¡Codifique imágenes con Aspose.SVG for .NET API en tiempo real! Cargue una imagen del sistema de archivos local e inmediatamente obtendrá el resultado como URI de datos, fuente de imagen Base64 y fuente de fondo CSS Base64. Se admiten JPG, JPEG, SVG, PJP, PJPEG, PNG, BMP, XBM, GIF, TIFF, ICO, IFIF, WEBP y otros formatos de imagen.



Convertir imagen a Base64 en Python

Este artículo considera cómo codificar un archivo de imagen en una cadena Base64 usando Aspose.SVG for Python via .NET API. El siguiente ejemplo de Python demuestra cómo convertir una imagen SVG en una cadena Base64 e incrustarla en un archivo SVG.

Código Python para convertir imágenes SVG a Base64

import base64
from aspose.svg import SVGDocument


document_path = "image.svg"

# Open an SVG image
with open(document_path, "rb") as file:
    bytes_data = file.read()

# Initialize an SVGDocument object
document = SVGDocument()

# Create an image element
img_element = document.create_element_ns("http://www.w3.org/2000/svg", "image")

# Convert SVG image to Base64 and set the href attribute
encoded_image = f"data:image/svg+xml;charset=utf-8;base64,{base64.b64encode(bytes_data).decode('utf-8')}"
img_element.set_attribute("href", encoded_image)

# Add the image element to the SVG document
document.document_element.append_child(img_element)

# Save the SVG document
document.save("image-base64.svg")

El fragmento del archivo image-base64.svg resultante se muestra a continuación. La cadena Base64 se cortó para no saturar el ejemplo de código SVG. El formato para incrustar una imagen Base64 como datos URI es el siguiente, para ser específico:

data:[<mime type>][;charset=<charset>][;base64],<encoded data>

Código SVG para incrustar imagen Base64

<svg xmlns="http://www.w3.org/2000/svg">
	<image href="data:image/svg+xml;charset=utf-8;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ..." alt="Alt text for the image"/>
</svg>



Incrustar una imagen Base64 en HTML

¿Por qué convertir una imagen a Base64? Las imágenes codificadas en Base64 se pueden incrustar directamente en HTML usando la etiqueta <img> insertando los datos de la imagen como un URI de datos. Este método reduce la cantidad de solicitudes HTTP que un navegador necesita para cargar una página web, lo que mejora el rendimiento. El siguiente fragmento de código muestra cómo incrustar imágenes Base64 en HTML.

Código HTML para incrustar imagen Base64 como URI de datos

<body>
    <div>
        <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ..." alt="Alt text for the image">
    </div>
</body>

El URI de datos consta de dos partes separadas por una coma. La primera parte especifica el encabezado del esquema de URI de datos para la imagen codificada en Base64 y la segunda parte define la cadena de imagen codificada en Base64:

  1. data:image/svg+xml;base64, es el encabezado del esquema de URI de datos.
  2. PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ... son los datos codificados en Base64.



Incrustar una imagen Base64 en código CSS

Otra forma de reducir la cantidad de solicitudes HTTP de imágenes es utilizar la propiedad CSS background-image. Esta propiedad establece imágenes como fondo de un elemento y puede especificar cada imagen como una URL o como un URI de datos de imagen. Con una URL, el navegador envía una solicitud HTTP para obtener la imagen externa, pero con una imagen Base64 incrustada como URI de datos, la imagen se incluye directamente en el documento. Esto significa que el navegador no tiene que realizar ninguna solicitud HTTP adicional, lo que acelera los tiempos de carga de la página.

Código CSS para incrustar imagen Base64 como URI de datos

body {
    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ...");
}



Incrustar una imagen Base64 en XML

Codificar imágenes en Base64 para incrustarlas en XML simplifica la integración y mejora la portabilidad al permitir que las imágenes se incluyan directamente en este formato, lo que reduce la necesidad de referencias de archivos externos.

Código XML con imagen SVG Base64 incrustada

<?xml version="1.0" encoding="UTF-8"?>
<root>
<image mime = "image/svg+xml">PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ...</image>
</root>



Incrustar una imagen Base64 en JSON

Convertir una imagen a Base64 y guardarla como JSON es útil para incrustarla en páginas web o aplicaciones sin solicitudes HTTP adicionales.

Código JSON con imagen Base64 incrustada

{
  "image": {
    "mime": "image/png",
    "data": "PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ..."
  }
}

Codificadores Base64 en línea

Los Codificadores Base64 en línea convierten el contenido de documentos SVG o archivos de imagen a su representación de cadena equivalente codificada con caracteres ASCII. También proporcionan ejemplos de datos URI, JSON, XML y otros. Las herramientas de codificación le ayudan a evitar diversos problemas de codificación de datos que hacen que el contenido del sitio web o los mensajes de correo electrónico sean ilegibles. Los codificadores Base64 son seguros, fáciles de usar y completamente gratuitos. Funcionan en cualquier navegador y en cualquier sistema operativo. ¡Convierta imágenes a Base64 gratis ahora mismo!

Comience con la API de Python

Si desea desarrollar gráficos vectoriales escalables y sus aplicaciones, instale nuestro flexible y de alta velocidad Aspose.SVG for Python via .NET API. pip es la forma más sencilla de descargar e instalar Aspose.SVG for Python via .NET API. Para hacer esto, ejecute el siguiente comando:

pip install aspose-svg-net

Para obtener más detalles sobre la instalación de la biblioteca Python y los requisitos del sistema, consulte la Documentación Aspose.SVG.

Otros codificadores compatibles

Puede codificar imágenes en Base64: se admiten los formatos JPG, PNG, BMP, GIF, TIFF, ICO y SVG:

  • PNG to Base64
  • JPG to Base64
  • PNG to XML
  • JPG to XML