Ir al contenido

Codificar una imagen en base 64 con PHP

Codificar una imagen e insertarla directamente en el código nos facilita la tarea de optimizar las páginas web y hacerlas más rápidas. Esto nos da la ventaja de acelerar la carga al disminuir las peticiones necesarias, además evita el uso de archivos externos.

Base 64 es un tipo de codificación diseñado para que datos binarios sobrepasen capas de transporte que no son de 8-bits. La información codificada con este sistema dará como resultado una secuencia de letras, que constituye un archivo y puede ser decodificado y mostrado correctamente por cualquier navegador web.

Codificar un archivo es algo sencillo, ya que PHP incluye una librería que permite la conversión en base64 de la siguiente forma mediante el método base64_encode.

string base64_encode (cadena o datos)

Por ejemplo para codificar una cadena de texto utiliza el siguiente código:

<?php
$cadena = "Hola mundo";
$codificado = base64_encode($cadena);
echo $codificado; //Se muestra SG9sYSBtdW5kbw==
?>

En el siguiente ejemplo podemos ver como se codifica/decodifica en base64 con PHP:

<?php
$cadena = "Hola mundo";
$codificado = base64_encode($cadena);
echo base64_decode($codificado); //Se muestra Hola mundo
echo $codificado; //Se muestra SG9sYSBtdW5kbw==
?>

Una vez que hemos visto como se codifica/decodifica una cadena de texto, veremos este ejemplo de cómo codificar una imagen en base 64 con PHP:

<?php
$imagen = file_get_contents("imagen.jpg");
$imdata = base64_encode($imagen);
?>

Lo que hemos hecho ha sido obtener el contenido de la imagen del directorio mediante file_get_contents y pasarla a base64 con base64_encode.

Para insertarla en nuestra página web sería algo como esto:

<?php
echo "<img src=\"data:image/jpg;base64,".$imdata."\"></img>";
?>

Donde imdata es datos base64.

Descarga el código de Codificar una imagen en base 64 con PHP

Aprende a codificar imágenes en base64 con PHP usando base64_encode y file_get_contents para reducir peticiones HTTP y optimizar la carga web.

Descargar código