Jump to content


Gerando Thumbnail Proporcional Com Gd


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Whitesnake

Whitesnake
  • Visitantes

Posted 05/06/2004, 21:29

Veja abaixo como gerar thumbnails com proporções perfeitas! Em breve estarei disponibilizando o Resizer, um script com estes recursos, mas com funções mais avançadas! Por enquanto, divirtam-se com esse :lol:


#!/usr/bin/perl
print "Content-type:text/html\n\n";
use CGI::Carp(fatalsToBrowser);

$nome = "C:/apache/htdocs/leopard.jpg"; #Imagem Original
$saida= "C:/apache/htdocs/thumbnails";   #Saída das Thumbnails
$ext  = "png"; # Extensão de saída. PNG ou JPEG
$n_l  = "100"; # Nova largura que as thumbnails terão. Altura será automática.

### - Chamamos o GD - ###
         use GD
### ---------------------- ###

;&cria_thumb;

##### Imprime resposta ao browser #####

print qq|
<html>
<head>
<title>Resizer Demo</title>
<style>
A {text-decoration:none}
</style>
</head>
<body bgcolor="#333333">
<div align="center">
<b><font face="Arial" size="3" color="#FFFFFF">
Thumbnail criada!
<br><br><br></font></b>
</div>
<div align="right">
<a href="http://www.thestonerock.co.nr" target="_blank">
<font face="Arial" size="1" color="#CCCCCC">
&copy; Stone Rock
</font></a>
</div>
</body<
</html>

|;
#######################################

sub cria_thumb{
$original = newFromJpeg GD::Image("$nome"); # Cria imagem
$n_original = newFromJpeg GD::Image("$nome"); #Cria imagem para edição
($l,$a) = $n_original->getBounds(); # Pega as dimensões



if ($ext eq "png"){$ext = png;}else{$ext = jpeg;} # Pega extensão


##### Calcula dimensões #####
$n_a = ($n_l*$a);
$n_a = ($n_a/$l);
#######################

$THUMB = new GD::Image($n_l,$n_a); # Cria imagem vazia para a thumbnail
$THUMB->copyResized($n_original,0,0,0,0,$n_l,$n_a,$l,$a); # Coloca os dados na imagem
$nome =~ s/.*(\/|\\)//gi; # Pega o nome da imagem

##### Grava a imagem #####
open (THUMB,">$saida/thumb_$nome") or die "$!";
binmode THUMB;
print THUMB $THUMB->jpeg;
close(THUMB);
######################
}






0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq