Jump to content


Gustavo Krause

Member Since 12/09/2007
Offline Last Active 04/12/2007, 19:20
-----

Posts I've Made

In Topic: Gerar Thumbs (miniaturas)

12/09/2007, 17:45

Estou fazendo um album aqui e me veio a necessidade de gerar Thumb das imagens.

Cai nesta pagina, só que o script la de cima esta com algumas falhazinhas.

ai dei uma alterada.

aqui no meu PC funcionou. Pode ser melhorado esse código!! mas pelo menos esta funcionando.

!!! Não esqueçam! que a biblioteca GD deve estar ativada!!


arquivo: thumbs.php

&lt;script>	function Selected(what) {		what.style.border = "3px Solid red";	}	function Unsel(what) {		what.style.border = "3px Solid #000000";	}</script><table width=60% style="border: 1px solid #000000;" cellspacing=2 cellpadding=2><?php$totalporlinha="4"; // Total de fotos por linha$pasta = "fotos"; // Pasta de onde estão as fotos (se o arquivo estiver na mesma pasta das fotos bote apenas "./")$open = opendir("$pasta/"); //Abre a pastawhile ($foto = readdir($open)) { //Lê a pasta	if (eregi(".jpg",$foto)) { //Verifica se o arquivo é mesmo JPG	if ($cont == "") {		$cont="0";	}	if ($cont=="0") {		echo "<tr>";	}	$cont++;	echo "	<td>	<a href=\"$pasta/$foto\">	<img style=\"border: 3px solid #000000\" onmouseover=Selected(this); onmouseout=Unsel(this); src=\"gerar_thumb.php?filename=$foto\">	</a></td>"; //Mostra as thumbs	if ($cont=="$totalporlinha") {		echo "</tr>"; $cont="0"; }	}}?></table>

arquivo: gerar_thumb.php

<?php$pasta = "fotos"; //Bote aqui a pasta onde estão as imagens (se o arquivo estiver na mesma pasta das imagens deixe em branco)$foto = $_GET["filename"];$filename = "$pasta/$foto"; //não mude aqui//$filename = "$pasta/$filename"; //não mude aqui$imagem_orig     =   ImageCreateFromJPEG($filename);//LARGURA$pontoX          =   ImagesX($imagem_orig);//ALTURA$pontoY          =   ImagesY($imagem_orig);$thumb_y = 150; //Altura da thumb//Essa formula: ($thumb_y * $pontoX) / $pontoY // é para diminuir na proporção $thumb_x = ($thumb_y * $pontoX) / $pontoY; //Largura da thumb, se quiser que ela seja uma largura fica é só substitur por isso: $thumb_x = 100;$quality = 80; //Qualidade (melhor não mudar)//Deixe essa parte como está$thumbnail = imagecreatetruecolor($thumb_x,$thumb_y);$originalimage = imagecreatefromjpeg($filename);imagecopyresized($thumbnail,$originalimage,0,0,0,0,$thumb_x,$thumb_y,ImageSX($originalimage),ImageSY($originalimage));imagejpeg($thumbnail,'',$quality);?>

IPB Skin By Virteq