Ver Mensaje Individual
  #23 (permalink)  
Antiguo 16/01/2008, 11:37
Avatar de Dude--
Dude--
 
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Re: Redimensionar imágenes

Cambie un poco mi código, para que no dependiera de tantas variables y así poder investigar cual podría ser el problema.

Código:
<?php
	
$datos = getimagesize($imagen);
	
if($datos[2]==1){$img = @imagecreatefromgif($imagen);}
if($datos[2]==2){$img = @imagecreatefromjpeg($imagen);}
if($datos[2]==3){$img = @imagecreatefrompng($imagen);}
	
if ( $datos[0] > 1500) 
{ /* Comprobar si la anchura de la imagen es mayor de 1500px */
	$img  = @imagecreatefromjpeg('http://www.midominio.org/img/varias/sun.jpg');
}
	
$thumb = imagecreatetruecolor(200,108);
	
$final = imagecopyresampled($thumb, $img, 0, 0, 0, 0, 200, 108, $datos[0], $datos[1]);
	
if($datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if($datos[2]==2){header("Content-type: image/jpeg"); imagejpeg($thumb);}
if($datos[2]==3){header("Content-type: image/png"); imagepng($thumb);}
	
imagedestroy($thumb);
?>
La imagen sun.jpg es una pequeña imagen que puse para comprobar si había algún problema en la lectura de datos de getimagesize(). Si la anchura de la imagen ($datos[0]) es superior a 1500px en vez de intentar resizear la imagen original lo hace con la imagen sun.jpg.

La cuestión es que imágenes de $datos[0] == 3072 no entran en el if, cuando claramente deberían, lo que me sugirió que la función getimagesize() no estaba haciendo su trabajo.

En vez de utilizar la función getimagesize() en este archivo que devuelve una imagen (fun_redimensionar.php) la utilicé en otro archivo que no devuelve ninguna (index.php) simplemente para ver si leía bien la imagen; comprobé que leia los datos perfectamente (como pude verificar volcándolos con un print_r() ). Pero getimagesize() usado en "fun_redimensionar.php" ¡no funciona bien!.... por algún extraño motivo no lee las imágenes de la resolución indicada (3072x2304 o superiores), resoluciones inferiores las lee perfectamente. ¿Alguna idea del porque ocurre esto?

Última edición por Dude--; 17/01/2008 a las 05:51