decodificar imagenes

Iniciado por Geek7, 17 Julio 2013, 21:47 PM

0 Miembros y 1 Visitante están viendo este tema.

Geek7

Quisiera saber como decodificar (y en principio como codificar) imagenes en base64.

Mi codigo es el siguiente:
Código (php) [Seleccionar]
$img_src = file_get_contents("IMG_0205.jpg");

$encode = base64_encode($img_src);

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


Ahora, si se fijan en el index.php del wampserver, no tiene la linea donde especifica el nombre de la imagen, simplemente esta asi:

Código (php) [Seleccionar]

$pngFolder = <<< EOFILE
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAABhlBMVEX//v7//v3///7//fr//fj+/v3//fb+/fT+/Pf//PX+/Pb+/PP+/PL+/PH+/PD+++/+++7++u/9+vL9+vH79+r79+n79uj89tj89Nf889D88sj78sz78sr58N3u7u7u7ev777j67bL67Kv46sHt6uP26cns6d356aP56aD56Jv45pT45pP45ZD45I324av344r344T14J734oT34YD13pD24Hv03af13pP233X025303JL23nX23nHz2pX23Gvn2a7122fz2I3122T12mLz14Xv1JPy1YD12Vz02Fvy1H7v04T011Py03j011b01k7v0n/x0nHz1Ejv0Hnuz3Xx0Gvz00buzofz00Pxz2juz3Hy0TrmznzmzoHy0Djqy2vtymnxzS3xzi/kyG3jyG7wyyXkwJjpwHLiw2Liw2HhwmDdvlXevVPduVThsX7btDrbsj/gq3DbsDzbrT7brDvaqzjapjrbpTraojnboTrbmzrbmjrbl0Tbljrakz3ajzzZjTfZijLZiTJdVmhqAAAAgnRSTlP///////////////////////////////////////8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9XzUpQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAACqSURBVBiVY5BDAwxECGRlpgNBtpoKCMjLM8jnsYKASFJycnJ0tD1QRT6HromhHj8YMOcABYqEzc3d4uO9vIKCIkULgQIlYq5haao8YMBUDBQoZWIBAnFtAwsHD4kyoEA5l5SCkqa+qZ27X7hkBVCgUkhRXcvI2sk3MCpRugooUCOooWNs4+wdGpuQIlMDFKiWNbO0dXTx9AwICVGuBQqkFtQ1wEB9LhGeAwDSdzMEmZfC0wAAAABJRU5ErkJggg==
EOFILE;

..............

if (isset($_GET['img']))
{
    switch ($_GET['img'])
    {
        case 'pngFolder' :
        header("Content-type: image/png");
        echo base64_decode($pngFolder);
        exit();


Y llama las imagenes (en css):
Código (css) [Seleccionar]


background: url(index.php?img=gifLogo) 0 0 no-repeat;



Alguien me puede decir como ahcer eso ?

#!drvy

Lo que haces es directamente pasar el contenido de la imagen a base64. Osease, lo que estas viendo es el "código de la imagen" codificado en base64.

Saludos

Geek7

Pero como en el wamperserver le hizo sin poner el nombre de las imagenes??

No hay un file_get_contents("imagen.png")...

eferion

Cita de: Geek7 en 17 Julio 2013, 21:47 PM
Código (css) [Seleccionar]


background: url(index.php?img=gifLogo) 0 0 no-repeat;


Esa línea está cargando una imagen a través de una página php.

Lo que tienes que hacer es que la página php a la que se llama sea capaz de volcar el contenido html correspondiente a una imagen.

Para eso tienes que preparar la página php para que no vuelque nada más que lo siguiente:
* en primer lugar, los header correspondientes. Solo hay uno obligatorio y es el que indica el tipo mime de la imagen.
* en segundo lugar el código de la imagen. Para facilitar esta tarea, php dispone de funciones que te facilitan esta parte del trabajo.

Código (php) [Seleccionar]

<?php
header
'Content-Type: image/png' );

$img imagecreatefrompng'ruta_imagen' );
imagepng$img );
imagedestroy$img );