0

Redimensionando Imagens

criado por Cesar Rodrigo Bagatoli em 14/05/2004 8:33am
Como tratamento de imagens é algo um pouco tanto complicado, é difícil fazer milagres, pois o PHP não é um Software para Editoração como o PhotoShop por exemplo. Mas abaixo mostro uma função que deverá ser de grande utilidade pública, pois ela redimensiona imagens proporcionalmente. A questão à qualidade das imagens redimensionadas depente muito dos DPIs (Pontos por Polegada) da Imagem.

OBS: Esta função deve ser aplicada em imagens já no servidor.

Então vamos a função, eu a chamei de reamostra:

<?php
// Criado por Cesar R. Bagatoli
// crbdigo@gmail.com
function reamostra($path_img, $nome_img, $al, $nova_al) {
    $sizexy  = getimagesize($path_img.$nome_img);
    $largura = $sizexy[0];
    $altura  = $sizexy[1];
    $tipo    = $sizexy[2];

    if ($al == 'l') {
        if ($largura != $nova_al) {
            $nova_largura = $nova_al;
            $nova_altura  = round(($nova_largura * $altura) / $largura);
            $muda = true;
        }
    }
    elseif ($al == 'a') {
        if ($altura != $nova_al) {
            $nova_altura  = $nova_al;
            $nova_largura = round(($nova_altura * $largura) / $altura);
            $muda = $true;
        }
    }

    if ($muda) {
        if ($tipo == 2) {
            $img = imagecreatefromjpeg($path_img.$nome_img);
        } 
        elseif ($tipo == 1) {
            $img = imagecreatefromgif($path_img.$nome_img);
        }

        $img_nova = imagecreatetruecolor($nova_largura, $nova_altura);
        imagecopyresized($img_nova, $img, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura, $altura);

        if ($tipo == 2) {
            imagejpeg($img_nova, $path_img.$nome_img);
        } 
        elseif ($tipo == 1) {
            imagegif($img_nova, $path_img.$nome_img);
        }
    }
}
?>


Para usar a função:
reamostra(a, b, c, d);

a. É o path onde se encontra a imagen no servidor.
b. É o nome da imagem sem path.
c. Para informar para a função por onde redimensionar a imagem, 'a' para altura e 'l' para largura.
d. É o novo tamanho da largura ou altura (depende do que vc escolher na opção C) em pixels.

E pronto, a função faz o resto!!
Qualquer dúvida meu email esta no topo!!

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)