[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