¿Cómo cambiar el tamaño de la imagen JPEG en PHP?

¿Por qué necesitamos cambiar el tamaño de las imágenes?
En un sitio web, a menudo, necesitamos escalar una imagen para que se ajuste a una sección en particular. A veces, es necesario reducir cualquier imagen de tamaño aleatorio para que se ajuste a una sección de foto de portada o una sección de imagen de perfil. Además, necesitamos mostrar una miniatura de una imagen más grande. En esos casos, no es factible cambiar el tamaño de la imagen manualmente siempre.

Una forma de resolver el problema anterior es usar el siguiente método en el que solo necesitamos establecer los atributos de ancho y alto en la etiqueta de la imagen en nuestro HTML.

<img src="check.jpg" height="100" width="100" alt="Image resize">

El problema con esto es que la imagen completa se descarga del servidor y se muestra en tamaño reducido dentro del navegador. Esto significa que se requiere la misma cantidad de ancho de banda para mostrar la imagen en el tamaño más pequeño que se habría requerido en el caso del tamaño original.

Uso de PHP para cambiar el tamaño de la imagen en el extremo del servidor: de ahora en adelante usaremos PHP para disminuir la dimensión de la imagen y renderizarla de modo que solo se descargue un tamaño más pequeño en el extremo del cliente y no en la imagen original. Para lograr esto, usaremos la función imagecopyresampled() en PHP.

La función imagecopyresampled() se usa para copiar y cambiar el tamaño de una imagen o parte de la imagen con remuestreo.

Sintaxis:

bool imagecopyresampled( resource $dst_image, resource $src_image,
                  int $dst_x, int $dst_y, int $src_x, int $src_y,
                  int $dst_w, int $dst_h, int $src_w, int $src_h )

Parámetros: Esta función acepta un área rectangular de $src_image de ancho $src_w y alto $src_h en la posición ($src_x, $src_y) y la coloca en un área rectangular de $dst_image de ancho $dst_w y alto $dst_h en la posición ($dst_x, $dst_y) .

Ejemplo: este ejemplo utiliza la función imagecopyresampled() para cambiar el tamaño de la imagen.

<?php
  
// The file concerned
$filename = 'check.jpg';
  
// Maximum width and height
$width = 100;
$height = 100;
  
// File type
header('Content-Type: image/jpg');
  
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);
  
$ratio_orig = $width_orig/$height_orig;
  
if ($width/$height > $ratio_orig) {
    $width = $height*$ratio_orig;
} else {
    $height = $width/$ratio_orig;
}
  
// Resampling the image 
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
  
imagecopyresampled($image_p, $image, 0, 0, 0, 0,
        $width, $height, $width_orig, $height_orig);
  
// Display of output image
imagejpeg($image_p, null, 100);
  
?>

Producción:

  • Imagen original:
    Imagen original
  • Imagen de salida:
    Final image

Publicación traducida automáticamente

Artículo escrito por soumit1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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