PHP:Modificar Imágenes (Educacional)

De Foros del Web

SECCION: IMAGEN

SCRIPT: CORTAR IMAGENES EN MASA


Objetivo: Script de tipo educacional para entender que manejar Imagenes en PHP es lo mismo que usar un editor como FireWork, la diferencia esta en que PHP es escrito. - Quita Sección rectangular Inferior

/*
    CORTAR "$cutpx" DE UNA IMAGEN
    ANGEL ROYO 2002
   */
 
function tiempo(){
 
 list($ms,$s)=explode(" ",microtime());
 $t=($ms + $s);
 return $t; /* Retorna el Tiempo en Segundos */
 
}/* Esta función se la agregué para ver lo que se demora la PC */
 
function image_cut($src,$destino,$cutpx){
 
  $size = getimagesize($src);/* Propiedades de la imagen */
  $im=imagecreatefromjpeg($src); /*Tomo la imagen origen */
$img=imagecreate($size[0],$size[1]-$cutpx);/*[0] ANCHO, [1] ALTO, me creo una CANVAS, algo similar que en Firework*/
  imagecopyresized($img, $im, 0, 0, 0, 0, $size[0],$size[1]-$cutpx, $size[0], $size[1]-$cutpx); /* Copio en mi CANVAS la imagen $im en la dimensión que deseo */
  ImageJPEG($img,$destino,85); /*Exporto la CANVAS a JPG con 85% */
  ImageDestroy($img); /* La Borro de la Cache */
 
/* El procedimiento es similar a usar un editor de imagenes */
}
 
 $d=dir("empresa/"); /*Directorio con las imagenes de origen*/
 $t0=tiempo();/* Opcional */
  echo "Handle: ".$d->handle."<br/>\n";/* Opcional */
  echo "Path: ".$d->path."<br/>\n";/* Opcional */
 
  while($archivo=$d->read()) {/* Comienzo a leer la carpeta definida en dir */
 
          if (eregi(".+.jpe?g$",$archivo)){
              /* ES JPG o JPEG, por lo tanto aplicamos la funcion image_cut */
 
    $img_fuente=$d->path.'/'.$archivo;
    $img_destino='cortadas/'.$archivo;
 image_cut($img_fuente,$img_destino,30); /*30 signifca 30 pixeles de corte, eso es lo que mide mas menos el rectangulo */
 
 }
 
      echo $archivo."<br/>\n"; /* Muestra el nombre de los archivos */
 
      }
 
      $d->close(); /* Cierro */  
 
      $total=tiempo()-$t0;
 
      echo "<br/>EL PROCESO TARDO: $total (s)";  

Pues ahí está.

Se demoró aprox entre 80 y 90 s, en mi PC de 350 Mhz - 196 RAM.

173 Imágenes un total de 6.78 Megas inicial y 5.41 Megas final.

Me ahorré algunos Bytes :)


--Angel Royo 12 Dic 2002

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales