Sistema para gerar thumb (miniatura de foto) proporcional

O Jeison Frasson escreveu (ou copiou) isso no dia 26/08/2009 Voltar

A vantagem deste 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.

sem mais blablabla vai ai 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

Se não entendeu como funciona direito é só da um comentario ai em baixo, flws!

Comentar

Quase todos direitos reservados a Newsmade
Sistema para gerar thumb (miniatura de foto) proporcional | Newsmade