imagecopyresized

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopyresizedCopia y redimensiona una parte de una imagen

Descripción

imagecopyresized(
    GdImage $dst_image,
    GdImage $src_image,
    int $dst_x,
    int $dst_y,
    int $src_x,
    int $src_y,
    int $dst_width,
    int $dst_height,
    int $src_width,
    int $src_height
): bool

imagecopyresized() copia una parte rectangular de una imagen en otra imagen de destino. dst_image es la imagen de destino, src_image es la imagen fuente.

En otras palabras, imagecopyresized() tomará una forma rectangular src_image de un ancho de src_width y una altura src_height en la posición (src_x,src_y) y la colocará en una zona rectangular dst_image de un ancho de dst_width y una altura de dst_height en la posición (dst_x,dst_y).

Si las dimensiones de la fuente y el destino no son iguales, se realiza un estiramiento adecuado para hacer coincidir las dos. Las coordenadas proporcionadas se definen en relación con la esquina superior izquierda. Esta función puede ser utilizada para copiar regiones dentro de una misma imagen (si dst_image y src_image son idénticas), pero si las regiones se superponen, el resultado podría ser inconsistente.

Parámetros

dst_image

Recurso de tipo enlace a la imagen de destino.

src_image

Recurso de tipo enlace a la imagen original.

dst_x

X: coordenada del punto de destino.

dst_y

Y: coordenada del punto de destino.

src_x

X: coordenada del punto fuente.

src_y

Y: coordenada del punto fuente.

dst_width

Ancho del destino.

dst_height

Altura del destino.

src_width

Ancho original.

src_height

Altura original.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
8.0.0 dst_image y src_image ahora esperan instancias de GdImage; anteriormente, se esperaban resources.

Ejemplos

Ejemplo #1 Redimensionamiento de una imagen

Este ejemplo mostrará la imagen redimensionada a la mitad de su tamaño original.

<?php
// Archivo y nuevo tamaño
$filename = 'test.jpg';
$percent = 0.5;

// Tipo de contenido
header('Content-Type: image/jpeg');

// Cálculo de las nuevas dimensiones
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Carga
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Redimensionamiento
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Mostrar
imagejpeg($thumb);
?>

El resultado del ejemplo sería algo similar a:

Visualización del ejemplo: imagecopyresized()

La imagen mostrada tendrá la mitad del tamaño de la imagen original, pero una mejor calidad puede obtenerse utilizando la función imagecopyresampled().

Notas

Nota:

Existe un problema debido a las limitaciones del tamaño de la paleta (255 + 1 colores diferentes). Filtrar o reescalar una imagen requiere más de 255 colores, entonces se utiliza una aproximación para calcular el nuevo número de colores. Con una paleta, si un nuevo color no puede ser asignado, se utiliza el color más cercano (en teoría); esto no siempre es el más cercano visualmente. Esto puede generar problemas extraños, como imágenes blancas. Para evitar este problema, convierta a imágenes TrueColor, como las generadas por la función imagecreatetruecolor().

Ver también

  • imagecopyresampled() - Copia, redimensiona y reinterpolación de una imagen
  • imagescale() - Redimensiona una imagen utilizando una altura y una anchura proporcionadas
  • imagecrop() - Recorta una imagen en el rectángulo dado