Foro de elhacker.net

Programación => 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
  1. $img_src = file_get_contents("IMG_0205.jpg");
  2.  
  3. $encode = base64_encode($img_src);
  4.  
  5. echo '<img src="data:image/jpg;base64,' . $encode . '" />';
  6.  

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
  1. $pngFolder = <<< EOFILE
  2. 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==
  3. EOFILE;
  4.  
  5. ..............
  6.  
  7. if (isset($_GET['img']))
  8. {
  9.    switch ($_GET['img'])
  10.    {
  11.        case 'pngFolder' :
  12.        header("Content-type: image/png");
  13.        echo base64_decode($pngFolder);
  14.        exit();
  15.  

Y llama las imagenes (en css):
Código
  1.  
  2. background: url(index.php?img=gifLogo) 0 0 no-repeat;
  3.  


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
Código
  1.  
  2. background: url(index.php?img=gifLogo) 0 0 no-repeat;
  3.  

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
  1. <?php
  2. header( 'Content-Type: image/png' );
  3.  
  4. $img = imagecreatefrompng( 'ruta_imagen' );
  5. imagepng( $img );
  6. imagedestroy( $img );
  7.