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.
gracias amigo si funciona perfecto. agregare mas funcionespara perfeccionar la ecnica.saludosdesde limaperu
Yeah bookmaking this wasn’t a high risk decision great post!