Redimensionar imágenes con PHP

En muchos casos es necesario mostrar una determinada imagen en nuestra Web en diferentes páginas y posiblemente con distinto tamaño. Esto puede resultar un dolor de cabeza cuando por ejemplo tenemos una tienda virtual y las imágenes de los productos las queremos visualizar a un tamaño concreto en según que zona de la Web pero nos vemos en el caso de que cada producto tiene un tamaño diferente en su imagen original.

Para resolver este problema tenemos un script que redimensiona o fuerza una determinada imagen. Es decir, forzamos un ancho para luego calcular mediante una función su alto.

Simplemente se trata de tener una función que recibe como parámetros la imagen a redimensionar y el ancho que queramos para nuestras imágenes. La función se encargará de retornar las dimensiones idóneas para ese ancho.

<?php
function redimensionar($src, $ancho_forzado){
   if (file_exists($src)) {
      list($width, $height, $type, $attr)= getimagesize($src);
      if ($ancho_forzado > $width) {
         $max_width = $width;
      } else {
         $max_width = $ancho_forzado;
      }
      $proporcion = $width / $max_width;
      if ($proporcion == 0) {
         return -1;
      }
      $height_dyn = $height / $proporcion;
   } else {
      return -1;
   }
   return array($max_width, $height_dyn);
}
?>

Para llamar a esta función debemos hacerlo como sigue:

<?php
$imagen = 'images/imagen1.jpg';
$array_medidas_img = redimensionar($imagen, 50);
echo '<img src="'.$imagen.'" width="'.$array_medidas_img[0].'" height="'.$array_medidas_img[1].'" />';
?>

En estas 3 líneas de código lo que estamos haciendo es redimensionar la imagen depositaba en la variable $imagen, forzando el width a 50px. De esta forma el height ya se encarga la función redimensionar() de calcularlo dependiendo de los tamaños reales de la imagen original.

Seguidamente mostramos la imagen citada con el height y width redimensionados.

Hay que tener en cuenta que si se quiere redimensionar a un tamaño mayor, se cogerá los tamaños de la imagen original. Conviene tener imágenes grandes para reducirlas de forma correcta.

Ver ejemplo en funcionamiento

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(5 votos, promedio: 4 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

2 respuestas a “Redimensionar imágenes con PHP”

  1. WILBER MASIEL dice:

    gracias amigo si funciona perfecto. agregare mas funcionespara perfeccionar la ecnica.saludosdesde limaperu

  2. Evia Peach dice:

    Yeah bookmaking this wasn’t a high risk decision great post!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre