Funciones de GD e Imágenes
PHP Manual

imagecopyresized

(PHP 4, PHP 5)

imagecopyresizedCopia y cambia el tamaño de parte de una imagen

Descripción

bool imagecopyresized ( 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 )

imagecopyresized() copia una porción de una imagen a otra imagen. dst_image es la imagen de destino, src_image es el identificador de la imagen de origen.

En otras palabras, imagecopyresized() tomará 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).

Si las coordenadas del origen y destino y los anchos y altos difieren, se llevará a cabo la ampliación o reducción del fragmento de la imagen. Las coodernadas se refiren a la esquina superior izquierda. Esta función se puede usar para copiar regiones dentro de la misma imagen (si dst_image es el mismo que src_image) pero si las regiones se solapan el resultado será impredecible.

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

Coordenada x del punto de destino.

dst_y

Coordenada y del punto de destino.

src_x

Coordenada x del punto de origen.

src_y

Coordenada y del punto de origen.

dst_w

Ancho del destino.

dst_h

Alto del destino.

src_w

Ancho original.

src_h

Altura original.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

Ejemplo #1 Cambiar el tamaño de una imagen

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

<?php
// Archivo y nuevo tamaño
$nombre_archivo 'prueba.jpg';
$porcentaje 0.5;

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

// Obtener nuevos tamaños
list($ancho$alto) = getimagesize($nombre_archivo);
$nuevo_ancho $ancho $porcentaje;
$nuevo_alto $alto $porcentaje;

// Carcgar
$thumb imagecreatetruecolor($nuevo_ancho$nuevo_alto);
$origen imagecreatefromjpeg($nombre_archivo);

// Cambiar el tamaño
imagecopyresized($thumb$origen0000$nuevo_ancho$nuevo_alto$ancho$alto);

// Imprimir
imagejpeg($thumb);
?>

El resultado del ejemplo sería algo similar a:

Salida del ejemplo : Cambiar el tamaño de una imagen

La imagen se imprimirá a mitad de tamaño, aunque se puede obtener una mejor calidad usando imagecopyresampled().

Notas

Nota:

Hay un problema debido a las limitaciones de la imagen de paleta (255+1 colores). Redimensionar o filtrar una imagen normalmente necesita más de 255 colores, se usa un tipo de aproximación para calcular el nuevo píxel redimensionado y su color. Con una imagen de paleta tratamos de asignar un color nuevo, si falló, escogemos el color computado más próximo (en teoría). Éste no es siempre el color visual más próximo. Puede producir un resultado extraño, como imágenes en blaco (o visualmente en blaco). Para saltarse este problema, por favor use una imagen de color verdadero como imagen de destino, como una creada por imagecreatetruecolor().

Ver también

imagecopyresampled() - Copia y cambia el tamaño de parte de una imagen redimensionándola


Funciones de GD e Imágenes
PHP Manual