(PHP 4, PHP 5, PHP 7, PHP 8)
imagecopyresized — Copia y redimensiona una parte de una imagen
$dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_width,$dst_height,$src_width,$src_height
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.
dst_imageDestination image resource.
src_imageSource image resource.
dst_xX: coordenada del punto de destino.
dst_yY: coordenada del punto de destino.
src_xX: coordenada del punto fuente.
src_yY: coordenada del punto fuente.
dst_widthAncho del destino.
dst_heightAltura del destino.
src_widthSource width.
src_heightSource height.
| Versión | Descripción |
|---|---|
| 8.0.0 |
dst_image y src_image
ahora esperan instancias de GdImage;
anteriormente, se esperaban resources.
|
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);
?>Resultado del ejemplo anterior es similar a :
La imagen mostrada tendrá la mitad del tamaño de la imagen original, pero una mejor calidad puede obtenerse utilizando la función imagecopyresampled().
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().