Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/01/2007, 16:50
jucuegas
 
Fecha de Ingreso: enero-2006
Ubicación: Valencia
Mensajes: 96
Antigüedad: 19 años, 1 mes
Puntos: 1
Re: Redimencionar imagenes

Yo tengo un codigo que vi por la red para reducir el tamaño pero tengo un problema al crear imágenes algo grandes. El tema es que para crear imágenes de 120 px o 250 px de ancho no hay problemas pero al crear una de 800 px no crea siembre la imágen reducida.
Los archivos origen suelen ser de 3 MegaPix mas o menos y no se a que se puede deber este problema, no creo q sea potencia del pc ya que mi pc tira bien.

Os pongo mi código, a diferencia del original en este busca la imagen original en un subdirectorio, y crea los thumbs en otros directorios

La llamada es la siguiente
Código PHP:
echo "<img src='redimensionar.php?directorio=$directorio&imagen=$archivo&tamano=800' width=70 height=70><br>800px"
Y el contenido de redimensionar.php
Código PHP:
<?php  
$directorio
="img/".basename($_GET['directorio']);  
$nombre1=basename($_GET['imagen']);  
$nombre=$directorio."/".basename($_GET['imagen']);  
$tamano=basename($_GET['tamano']);  
$anchura=$tamano;  
$hmax=$tamano;  
$datos getimagesize("$nombre");  
//echo "----$directorio/$nombre---";
if($datos[2]==1){$img = @imagecreatefromgif($nombre);}  
if(
$datos[2]==2){$img = @imagecreatefromjpeg($nombre);}  
if(
$datos[2]==3){$img = @imagecreatefrompng($nombre);}  
$ratio = ($datos[0] / $anchura);  
$altura = ($datos[1] / $ratio);  
if(
$altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}  
$thumb imagecreatetruecolor($anchura,$altura);  
imagecopyresampled($thumb$img0000$anchura$altura$datos[0], $datos[1]);  
$dest="$directorio/$tamano/$nombre1";
$dirdest="$directorio/$tamano/";
echo 
"$dirdest";
if (!
file_exists($dirdest))
           
mkdir($dirdest0777);

if(
$datos[2]==1){header("Content-type: image/gif"); imagegif($thumb); imagejpeg($thumb,$dest,80);}  
if(
$datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);imagejpeg($thumb,$dest,70);}  
if(
$datos[2]==3){header("Content-type: image/png"); imagepng($thumb); imagejpeg($thumb,$dest,80); }  
imagedestroy($thumb);
?>