[Cascavel-pm] Usando o GD pra redimencionar imagens...

Sandro Vitenti sandro em webengines.com.br
Terça Maio 11 11:12:28 CDT 2004


João Gabriel wrote:

>Olá pessoal! Gostaria de saber como faço pra redimencionar imagens usando o
>modulo GD? Dei uma olhada rápida na ducomentação do modulo e não vi o que eu
>quero (vi criação de gráficos, inclusão de texto em imagens...), mas
>redimencionamento de imagens nada...
>
>Alguém pode me ajudar?
>
>Abraços,
>João Gabriel
>
>  
>
Ola, eu uso o seguinte codigo, ele nao eh exatamente para resize, eu fiz 
para criar thumbnail
mas da pra usar:

use strict; #Sempre
use GD;
GD::Image->trueColor(1); # Coloca true color como padrao


my $img = GD::Image->newFromJpegData($data) or die $!; # Ou qualquer 
metodo de abertura de imagem
my ($w,$h) = $img->getBounds; # tamanho atual
my ($nw,$nh); # novo width "largura", novo height "altura"

# Se quizer algo proporcional, ao determinar a altura estara 
determinando a largura assim:

$nh = XXX; # Nova altura
$nw = int($nh*$w/$h); # Nova altura dividida pela altura antiga da a 
proporcao correta entao multiplica pela largura antiga

# Se no caso quizer determinar a largura nova, mesma coisa:

$nw = XXX; # Nova largura
$nh = int($nw*$h/$w); # Nova largura dividida pela largura antiga da a 
proporcao correta entao multiplica pela algura antiga

# Se quizer em qualquer tamanho eh so colocar o q quizer

$nw = XXX;
$nh = YYY;

my $resized_img;
my $resized_img = GD::Image->new($nw,$nh);
$resized_img->trueColor(1);
$resized_img->copyResized($img,0,0,0,0,$nw,$nh,$w,$h); # Aqui que 
importa, essa funcao copia um retangulo em outro,
# Ela copia para $resized_img o a imagem de $img usando a seguinte 
logica, o retangulo q comeca no ponto
# (0,0), quarto e quinto parametros, e termina no ponto ($w,$h), ultimos 
dois parametros, lembrando q dois ponto
# determinam um retangulo, e copiado para o retangulo q comeca no (0,0), 
segundo e terceiro parametros e termina no ponto
# ($nh,$nw) sexto e setimo parametros, esticando ou apertando onde for 
necessario


# Espero nao ter deixado obscuro por tentar explicar demais

Sandro Vitenti





Mais detalhes sobre a lista de discussão Cascavel-pm