Codificar una imagen en base 64 con PHP

06/Feb/2013 PHP , , , , , , 2 Comentarios

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.

Codificando la imagen en base 64

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.

  1. string base64_encode (cadena o datos)

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

  1. <?php
  2. $str = "Cadena a codificar";
  3. ?>

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

  1. <?php
  2. $texto = "Hola mundo";
  3. $codificado = base64_encode($texto);
  4. $decodificado = base64_decode($codificado);
  5. echo $decodificado."<br />"; //Se muestra Hola mundo
  6. echo $codificado; //Se muestra SG9sYSBtdW5kbw==
  7. ?>

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:

  1. <?php
  2. $im = file_get_contents('filename.jpg');
  3. $imdata = base64_encode($im);
  4. ?>

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:

  1. echo "<img src='data:image/jpg;base64,".$imdata."' />";

Donde imdata es datos base64.

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

2 comentarios en “Codificar una imagen en base 64 con PHP”

Dave Rndn

Gab

Muchas gracias!

Dave Rndn

Pablo

y si quiero decodificar una imagen que se encuentra en la base de datos es decir mando que se guarde el codigo codificdo en la base de datos y ese codigo decodificarlo en una pagina

Los comentarios están cerrados.