imagecopyresized

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

imagecopyresizedCopia e redimensiona parte de uma imagem

Descrição

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 uma porção retangular de uma imagem para outra imagem. dst_image é a imagem de destino, src_image é a imagem de origem.

Em outras palavras, imagecopyresized() pegará uma área retangular de src_image, de largura src_width e altura src_height na posição (src_x,src_y), e posicionará esta área em uma outra área retangular de dst_image, de largura dst_width e altura dst_height, na posição (dst_x,dst_y).

Se as coordenadas de origem e destino e larguras e alturas forem diferentes, um alongamento ou um encolhimento apropriado do fragmento da imagem será realizado. As coordenadas se referem ao canto superior esquerdo. Esta função pode ser usada para copiar regiões dentro da mesma imagem (se dst_image for igual a src_image) mas se as regiões se sobrepuserem, os resultados serão imprevisíveis.

Parâmetros

dst_image

Recurso da imagem de destino.

src_image

Recurso da imagem de origem.

dst_x

Coordenada x do ponto de destino.

dst_y

Coordenada y do ponto de destino.

src_x

Coordenada x do ponto de origem.

src_y

Coordenada y do ponto de origem.

dst_width

Largura do destino.

dst_height

Altura do destino.

src_width

Largura da imagem de origem.

src_height

Altura da imagem de origem.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0 dst_image e src_image esperam instâncias GdImage agora; anteriormente, resources eram esperadas.

Exemplos

Example #1 Redimensionando uma imagem

Este exemplo irá mostrar a imagem com a metade do tamanho.

<?php
// Arquivo e novo tamanho
$filename = 'test.jpg';
$percent = 0.5;

// Tipo de conteúdo
header('Content-Type: image/jpeg');

// Obtém novos tamanhos
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

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

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

// Mostra
imagejpeg($thumb);
?>

O exemplo acima produzirá algo semelhante a:

Output of example: Redimensionando uma imagem

A imagem será mostrada com a metade do tamanho, mas uma qualidade melhor poderia ser obtida usando a função imagecopyresampled().

Notas

Note:

Existe um problema devido a limitações de imagem de paleta (255+1 cores). A reamostragem ou a filtragem de uma imagem normalmente precisa de mais cores que 255, um tipo de aproximação é usada para calculara o novo pixel reamostrado e sua cor. Com imagem de paleta tenta-se alocar uma nova cor, se isso falhar, escolhe-se a cor computada mais próxima (em teoria). Isto nem sempre é a cor mais próxima visualmente. Isto pode produzir um resultado estranho, tal como imagem vazia (ou visualmente vazia). Para evitar esse problema, favor utilizar uma imagem em cores verdadeiras como imagem de destino, tal como a criada por imagecreatetruecolor().

Veja Também

  • imagecopyresampled() - Copia e redimensiona parte de uma imagem com reamostragem
  • imagescale() - Muda a escala de uma imagem usando largura e altura informadas
  • imagecrop() - Recorta uma imagem no retângulo informado