Resizeador de imagenes (II)

calendario27/03/2005 reloj18:24 calendarioCategorías: PHP ComentarComentar

Como ya sabéis, ando haciendo una galería para otra web, por lo que me hice una función para cambiar el tamaño fácilmente, y he pensado en compartirla, porque fijo que a alguno os viene bien...

  1. < ?
  2. function resizear_imagen ($imagen,$img_anch_max,$img_alto_max){
  3. $extension = explode(".",imagen);
  4. $num = count($extension)-1;
  5. $extension = $extension[$num];
  6. $extension = strtolower($extension);
  7. switch ($extension){
  8. case "jpg": if (ImageCreateFromJpeg($imagen)) { $img = ImageCreateFromJpeg($imagen); } else { $errores = "Si"; } break;
  9. case "jpeg": if (ImageCreateFromJpeg($imagen)) { $img = ImageCreateFromJpeg($imagen); } else { $errores = "Si"; } break;
  10. case "gif": if (ImageCreateFromGif($imagen)) { $img = ImageCreateFromGif($imagen); } else { $errores = "Si"; } break;
  11. case "png": if (ImageCreateFromPng($imagen)) { $img = ImageCreateFromPng($imagen); } else { $errores = "Si"; } break;
  12. }
  13. //CALCULO LAS PROPORCIONES
  14. $prop_imagen = getimagesize($imagen);
  15. $ancho = $prop_imagen[0];
  16. $alto = $prop_imagen[1];
  17. if ($ancho >= $alto){
  18. $proporcion = $ancho/$alto;
  19. $ancho_dev = $img_anch_max;
  20. $alto_dev = $ancho_dev/$proporcion;
  21. if ($alto_dev > $img_alto_max){
  22. $alto_dev = $img_alto_max;
  23. $ancho_dev = $alto_dev * $proporcion;
  24. }
  25. } else {
  26. $proporcion = $alto/$ancho;
  27. $alto_dev = $img_alto_max;
  28. $ancho_dev = $alto_dev/$proporcion;
  29. if ($ancho_dev > $img_anch_max){
  30. $ancho_dev = $img_anch_max;
  31. $alto_dev = $ancho_dev * $proporcion;
  32. }
  33. }
  34. //CREO LA IMAGEN DEVUELTA
  35. $image = imagecreatetruecolor($ancho_dev, $alto_dev);
  36. ImageCopyResized($image, $img, 0, 0, 0, 0, $ancho_dev, $alto_dev, $ancho, $alto);
  37. if ($errores == "Si"){
  38. return "";
  39. } else{
  40. return $image;
  41. }
  42. }
  43. ?>

Espero comentarios y demás 🙂

Comentarios