Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Geek7 en 17 Julio 2013, 21:47 PM

Título: decodificar imagenes
Publicado por: Geek7 en 17 Julio 2013, 21:47 PM
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 ?
Título: Re: decodificar imagenes
Publicado por: #!drvy en 17 Julio 2013, 22:16 PM
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
Título: Re: decodificar imagenes
Publicado por: Geek7 en 17 Julio 2013, 22:19 PM
Pero como en el wamperserver le hizo sin poner el nombre de las imagenes??

No hay un file_get_contents("imagen.png")...
Título: Re: decodificar imagenes
Publicado por: eferion en 19 Julio 2013, 11:10 AM
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 );