Redimensionar imagens
Boa tarde pessoal,
atualmente eu uso um script para redimensionar as imagens de acordo com o tamanho desejado. Só que estou vendo que está com muitas falhas, as imagens sempre ficam cortadas e não ficam legais no sites que desenvolvo.
Gostaria de pedir pra vocês me passar exemplos de uma ferramenta melhor.
>
<?PHP
$list = getimagesize($_GET["imagem"]);
header("Content-type: " . $list["mime"]);
switch($list["mime"]){
case "image/png" : $im = imagecreatefrompng($_GET['imagem']); break; // Cria uma nova imagem a partir de um arquivo ou URL
case "image/gif" : $im = imagecreatefromgif($_GET['imagem']); break; // Cria uma nova imagem a partir de um arquivo ou URL
case "image/jpeg" : $im = imagecreatefromjpeg($_GET['imagem']); break; // Cria uma nova imagem a partir de um arquivo ou URL
case "image/bmp" : $im = imagecreatefromwbmp($_GET['imagem']);break;
}
$wid = (int)$_GET["w"];
$hei = (int)$_GET["h"];
$w = imagesx($im);
$h = imagesy($im);
$w1 = $w / $wid;
if ($hei == 0)
{
$h1 = $w1;
$hei = $h / $w1;
}
else
{
$h1 = $h / $hei;
}
// echo "$h1 - $w1";
$min = min($w1,$h1);
$xt = $min * $wid;
$x1 = ($w - $xt) / 2;
$x2 = $w - $x1;
$yt = $min * $hei;
$y1 = ($h - $yt) / 2;
$y2 = $h - $y1;
$x1 = (int) $x1;
$x2 = (int) $x2;
$y1 = (int) $y1;
$y2 = (int) $y2;
$img = NULL;
$img = imagecreatetruecolor($wid, $hei);
//$background = imagecolorallocate($img, 50, 50, 50);
if($list["mime"] == "image/png"){
imagecolorallocatealpha($img,255,255,255,127);
$c = imagecolorallocatealpha($img,255,255,255,6);
$c1 = imagecolorallocatealpha($img,0,0,0,127);
}else{
imagecolorallocate($img,255,255,255);
$c = imagecolorallocate($img,255,255,255);
$c1 = imagecolorallocate($img,0,0,0);
}
for ($i=0;$i<=$hei;$i++)
{
imageline($img,0,$i,$wid,$i,$c);
}
imagecopyresampled($img,$im,0,0,$x1,$y1,$wid,$hei,$x2-$x1,$y2-$y1);
switch($list["mime"]){
case "image/png" : imagepng($img); break;
case "image/gif" : imagegif($img,NULL,100); break;
case "image/jpeg" : imagejpeg($img,NULL,100); break;
case "image/bmp" : imagewbmp($img);break;
}
?>Discussão (1)
Carregando comentários...