Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/04/2012, 01:58
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Screenshoots dinamicos

Experimentando con esta librería, he creado esta miniaplicación.
http://dannegm.com/shot.php

He encontrado que tiene algunas deficiencias, por ejemplo, no captura las sombras y algunas medidas no las respeta; hay muchos bugs los cuales estaré documentando próximamente, de mientras les dejo el código de la aplicación.

-----------------------------
Datos técnicos:

Como estoy utilizando un vps (lo mejor que he probado :D) pues he tenido que configurar bastantes cosas, entre una de ellas necesito que el directorio donde guardare las imágenes generadas tenga permisos de escritura, esto lo puedes hacer con el ftp dandole permisos 777 o desde la consola utilizando el siguiente comando:

Código consola:
Ver original
  1. tu@consola$ sudo chmod 777 /path/to/pics

Una vez que tu directorio tenga permisos pues simplemente ejecuta la aplicación

Código PHP:
Ver original
  1. <?php
  2.  
  3. function genKey (){
  4.     $rCh = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  5.     $key = "";
  6.     for ( $i = 0; $i < 8; $i++ ){
  7.         $key .= $rCh{ rand(0,61) };
  8.     }
  9.     return $key;
  10. }
  11.  
  12. $url = isset($_GET['u']) ? $_GET['u'] : false;
  13.  
  14. if ( !$url ):
  15. ?>
  16.  
  17. <form action="#" method="get">
  18.     <label>
  19.         http://
  20.     </label>
  21.     <input name="u" />
  22.     <button>Shot!</button>
  23. </form>
  24.  
  25. <?php
  26. else:
  27.     $key = genKey();
  28.     exec('cd public_html');
  29.     $cmd = 'python webkit2png.py -x -o shots/' . $key . '.png --debug http://' . $url . ' --geometry 1024 600';
  30.     $output = '';
  31.     $exec = exec($cmd, $output);
  32.     if ( !$exec ):
  33.         echo $cmd;
  34.         echo '<br /><br />';
  35.         for ($i = 0; $i < count($output); $i++){
  36.             echo $output[$i] . '<br />';
  37.         }
  38.         echo '<br />Estas feo y no se puedo porcesar imagen';
  39.     else:
  40.         echo $cmd;
  41.         echo '<br /><br />';
  42.         for ($i = 0; $i < count($output); $i++){
  43.             echo $output[$i] . '<br />';
  44.         }
  45.         echo '<br /><img src="shots/' . $key . '.png" />';
  46.     endif;
  47. endif;
  48. ?>