Foros del Web » Programando para Internet » PHP »

No me redimenciona imagen.

Estas en el tema de No me redimenciona imagen. en el foro de PHP en Foros del Web. Saludos, tengo un redimencionador de imagen básico y me funciona ok, pero no funciona con imágenes grandes, 3000 x 3000 px no se por que ...
  #1 (permalink)  
Antiguo 19/05/2010, 16:28
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
No me redimenciona imagen.

Saludos, tengo un redimencionador de imagen básico y me funciona ok, pero no funciona con imágenes grandes, 3000 x 3000 px no se por que :/ hay alguna limitación ?

les dejo mi código por si acaso.

archivo.php //archivo donde quiero redimencionar la imagen
Código PHP:
Ver original
  1. echo "<img src=\"rd.php?archivo=$datos[archivo1]&amp;alto=160&amp;ancho=130\" border=\"0\" />"

mi archivo rd.php

Código PHP:
Ver original
  1. <?php
  2. $anchura = $_GET['ancho'];
  3. $hmax = $_GET['alto'];
  4. $nombre = $_GET['archivo'];
  5. $datos = getimagesize($nombre);
  6. if (($datos[0] <= $anchura) && ($datos[1] <= $hmax))
  7. {
  8. readfile($nombre);
  9. }
  10. else
  11. {
  12. if($datos[2]==1){$img = @imagecreatefromgif($nombre);}
  13. if($datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
  14. if($datos[2]==3){$img = @imagecreatefrompng($nombre);}
  15. $ratio = ($datos[0] / $anchura);
  16. $altura = ($datos[1] / $ratio);
  17. if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
  18. $thumb = imagecreatetruecolor($anchura,$altura);
  19. imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
  20. if($datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
  21. if($datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
  22. if($datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
  23. imagedestroy($thumb);
  24. }
  25. ?>

la imagen tiene 3279x5277px es .jpg
la quiero mostrar pequeña y no hace nada, con otras imagenes 1225x963 funciona perfecto.

Saludos

EDITO : plop! probando monte en el servidor y funciona y averiguando es solo problema del memory_limit de php lo modifique y va bien, con 128MB me anda bien no se si sera mucho o poco o esta en lo correcto, bueno acepto sugerencias.
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Última edición por kaninox; 19/05/2010 a las 16:52
  #2 (permalink)  
Antiguo 19/05/2010, 17:04
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: No me redimenciona imagen.

A manera de complemento: estoy usando una función que va muy bien. Te dejo el código, quizás ayude a una mejora:

Código PHP:
Ver original
  1. /*
  2. Micro Image Manipulation Pack
  3.  
  4. ©PhpToys 2006
  5. http://www.phptoys.com
  6.  
  7. Released under the terms and conditions of the
  8. GNU General Public License (http://gnu.org).
  9. */
  10.  
  11. function resizeImage($originalImage,$toWidth,$toHeight){
  12.    
  13.     // Get the original geometry and calculate scales
  14.     list($width, $height) = getimagesize($originalImage);
  15.     $xscale=$width/$toWidth;
  16.     $yscale=$height/$toHeight;
  17.    
  18.     // Recalculate new size with default ratio
  19.     if ($yscale>$xscale){
  20.         $new_width = round($width * (1/$yscale));
  21.         $new_height = round($height * (1/$yscale));
  22.     }
  23.     else {
  24.         $new_width = round($width * (1/$xscale));
  25.         $new_height = round($height * (1/$xscale));
  26.     }
  27.  
  28.     // Resize the original image
  29.     $imageResized = imagecreatetruecolor($new_width, $new_height);
  30.     $imageTmp     = imagecreatefromjpeg ($originalImage);
  31.     imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  32.  
  33.     return $imageResized;
  34. }
Aplicando la función:
Código PHP:
Ver original
  1. <?php
  2. $myimg1 = resizeImage('test.jpg',120,120);
  3. imagejpeg($myimg1,'result1.jpg',100);
  4. echo '<img src="result1.jpg" alt="miniatura" />';
  5. ?>
  #3 (permalink)  
Antiguo 19/05/2010, 17:34
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: No me redimenciona imagen.

vamos a probarla gracias
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Etiquetas: getimagesize, imagejpeg, miniatura
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.