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;
Atención técnica y comercial: (54)-11-5031-1111 las 24 hs. los 365 días del año. ToWebs, (c) 2008
Virtucom Networks S.A Av. Belgrano 1586, piso 10 (C1093AAQ) Cap. Fed. Bs. As, Argentina.