Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/08/2003, 18:46
erama
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 21 años, 5 meses
Puntos: 0
De acuerdo Crear thumb de lados iguales

Buenas a todos y MIL gracias por sus codigos.
Bueno, yo en esto son muy novato pero se sumar, restar, multiplicar y dividir!! (aunque no lo crean), entonces y le hice unas modificaciones para crear Thumbnails todos iguales sin desformar la imagen y además permitir especificar porcentaje de corte para crear el thumbnails.

Este es el codigo modificado:

Código PHP:
<?
/*
    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 funcion se la agrege más nada para ver lo que se demora la PC */


function image_cut($src,$destino$ancho_thumb$alto_thumb$porcentaje){
  
$size getimagesize($src);/* Propiedades de la imagen */
  
$im=imagecreatefromjpeg($src); /*Tomo la imagen origen */
  
$img=imagecreate($ancho_thumb,$alto_thumb);/*[0] ANCHO, [1] ALTO, me creo una CANVAS, algo similar que en Firework*/
//lo que tengo que averiguar es la proporcion del thumb con respecto a la img orignal, entonces hago esto:
$suma_lados_or=$size[0]+$size[1]; //aca sumo los lados de la imagen original lado+lado
$suma_lados_des=$ancho_thumb+$alto_thumb///sumo los lados del thumb
$proporcion=$suma_lados_or/$suma_lados_des//cualculo la proporcion del thumb con respecto al original
$final_proporcion=($porcentaje*$proporcion)/100//ahora calculo la proporcion en la que voy a cortar la imgen original para crear luego el thumb segun el porcentaje que el usuario indico, en este caso es de 50%
$agrandar_ancho=$final_proporcion*$ancho_thumb//calculo en pix's lo que debo agrandar de ancho
$agrandar_alto=$final_proporcion*$alto_thumb;// idem de alto
  
imagecopyresized($img$im00$size[0]/2-$agrandar_ancho/2$size[1]/2-$agrandar_alto/2$ancho_thumb$alto_thumb$agrandar_ancho$agrandar_alto); /* Copio en mi CANVAS la imagen $im en la dimensión que deseo, pero primero creo una imagen segun el porcentaje que se indico, luego calculo en centro de la imagen original y desde ahi corto el tamaño que deseo para luego crear el thumbnail*/
  
ImageJPEG($img,$destino,70); /*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,88,120,50); /*88 en el ancho del thumb, 120 es el alto y 50 esel porcentaje en que desea cortar la imagen original para crear el thumb */
          
}
      echo 
$archivo."<br/>\n"/* Muestra el nombre de los archivos */
      
}
      
$d->close(); /* Cierro */
      
      
$total=tiempo()-$t0;
      echo 
"<br/>EL PROCESO TARDO: $total (s)";

?>
bueno, ya se que soy un desastre explicando, pero no es gran cosa y si alguno tiene consejos para hacerlo mejor que me lo haga saber!