Newsmade
PHP, no auge
Voltar

Sistema para gerar thumb (miniatura de foto) proporcional

A vantagem desse script é que ele gera a thumb (miniatura de foto) exatamente do tamanho que você deseja e não fica com altura ou largura diferente. Basicamente funciona assim você determina 200x100px, por exemplo, a imagem tem 640x620px logo se eu fazer proporcional vai encontrar que a minha largura é maior eu vou ter um arquivo de 200x193px, ou seja não esta correto vai ficar maior na altura com esse problema montei esse thumb que faz a dimensão exata. Segue o script:
<?php
header("Content-type: image/jpeg");

$formanome = explode("::", $_GET['imagem']);

$im = $formanome['1'];

$im = imagecreatefromjpeg($im); // Cria uma nova imagem a partir de um arquivo ou URL

$wid = $formanome['0'];
$hei = $formanome['2'];

$origem_x = ImagesX($im);
$origem_y = ImagesY($im);

//VERIFICA VALOR MAIOR
if($origem_x > $origem_y) {
$percentual = $wid*100/$origem_x;

} else {
$percentual = $hei*100/$origem_y;
}

$widn = intval ($origem_x * $percentual/100);
$hein = intval ($origem_y * $percentual/100);

//Sertifica que os tamanhos estão corretos
if(($hein > $hei) or ($widn > $wid)){
if($hein > $hei){
$percentual = $hei*100/$hein;
} elseif($widn > $wid){
$percentual = $wid*100/$widn;
}

$widn = intval ($widn * $percentual/100);
$hein = intval ($hein * $percentual/100);


}

$left = ($wid-$widn)/2;
$top = ($hei-$hein)/2;

$img = NULL;
$img = imagecreatetruecolor($wid, $hei);

// Troca o fundo da imagem
$white = imagecolorallocate($im, 255, 255, 255);
imagefill($img, 0, 0, $white);

imagecopyresampled($img, $im, $left, $top, 0, 0, $widn, $hein, $origem_x, $origem_y);

imagejpeg($img);
?>


Alinha em destaque é a cor de fundo da imagem altere conforme sua necessidade.

Para ver essa thumb faz assim

<img src=”thumb.php?imagem=200::imagem.jpg::100” />


<img src=”thumb.php?imagem=largura::imagem.jpg::altura” />

Lembrando que o caminho da imagem tem que estar direcionada apartir de onde estiver o arquivo thumb Ligações Imagens
Postado 26/08/2009 08:24 por Jeison Frasson

© 2002-2012 Newsmade - Quase todos os direitos reservados.