imagecopyresized

(PHP 3, PHP 4, PHP 5)

imagecopyresized -- Copia y redimensiona parte de una imagen

Descripción

bool imagecopyresized ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH )

imagecopyresized() copia una porción rectangular de una imagen hacia otra imagen. dst_im es la imagen de destino, src_im es el identificador de la imagen origen. Si la altura y anchura de las coordenadas de origen y destino difieren se realizará un estrechamiento o un estiramiento apropiado del fragmento de la imagen. Las coordenadas van localizadas sobre la esquina superior izquierda. Esta función se puede usar para copiar regiones dentro de la misma imagen (si dst_im es igual que src_im) pero si las regiones se solapan los resultados seran impredecibles.

Nota: Existe un problema debido a las limitaciones de las imagenes con paleta de colores (255+1 colores). La acción de volver a muestrear o filtrar una imagen, normalmente requiere de más de 255 colores, con los que se usa una aproximación para calcular el nuevo pixel muestreado y su color.

En las imagenes con paleta de color, se trata de obtener el nuevo color, o el color calculado más próximo en caso de error. Sin embargo, este nuevo color no siempre es el que visualmente es mas semejante. De esta forma, se pueden producir resultados extraños como imagenes vacías.

Para solventar este problema, se recomienda usar imagenes de color real como imagen destino, que se pueden obtener por ejemplo mediante la función imagecreatetruecolor().

Ejemplos

Ejemplo 1. Redimensionar una imagen

Este ejemplo muestra una imagen a la mitad de su tamaño real.

<?php
// Variables que indican el archivo de la imagen y el nuevo tamano
$filename = 'test.jpg';
$percent = 0.5;

// Content-type para el navegador
header('Content-type: image/jpeg');

// Se obtienen las nuevas dimensiones
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Cargar la imagen
$thumb = imagecreate($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

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

// Mostrar la nueva imagen
imagejpeg($thumb);
?>

La imagen se muestra a la mitad de su tamaño original, aunque se puede obtener mejor calidad si se emplea la función imagecopyresampled().

Ver también

imagecopyresampled()

Hosting by: hurra.com
Generated: 2007-01-26 18:01:00