PHP: Função para redimensionar arquivos de foto

    Obrigado! você é a 804ª pessoa que visita este post.

    Bem galera, mais um post surgindo na área.

    Função simples e prática para redimensionamento de fotos. O redimensionamento é feito tendo como base os valores definidos nas variáveis $largura_max e $altura_max.

    O valor definido nestas variáveis corresponde a altura e largura máxima da imagem.

    A largura máxima permitida será de 800px e a altura máxima de 630px.

    upload.php

    <?
       if ( isset( $_POST['submit'] ) ){   
          $pasta = 'uploads';
          $file = $_FILES['arquivo'];
          $temp = $file['tmp_name'];
          $filename = $file['name'];
     
          $largura_max	= 800;
          $altura_max	= 630;
     
          require ('redimensiona_fotos.php');
          upload($temp, $filename, $largura_max, $altura_max, $pasta);
       }
       <form action="" method="post" enctype="multipart/form-data">
          <label for="arquivo">Arquivo:</label>
          <input type="file" name="arquivo" id="arquivo" /> 
          <br />
          <input type="submit" name="submit" value="Enviar" />
       </form>
    ?>

    redimensiona_fotos.php

    <?
       function upload($tmp, $arquivo, $max_x, $max_y, $pasta){
       //$max_x = 800 $max_y = 630
       $img		=	imagecreatefromjpeg($tmp);
       $original_x	=	imagesx($img); //largura
       $original_y	=	imagesy($img); //altura
       $diretorio	        = 	$pasta."/".$arquivo;
       // verifica se a largura ou altura da imagem é maior que o valor
       // máximo permitido
       if ( ( $original_x > $max_x ) || ( $original_y > $max_y ) ){
    	// verifica o que é maior na imagem, largura ou altura?
            if ( $original_x > $original_y ) {	
    		$max_y	= 	( $max_x * $original_y ) / $original_x;
    	}else{
    		$max_x	= 	( $max_y * $original_x ) / $original_y;
    	}
    	$nova = imagecreatetruecolor($max_x, $max_y);
    	imagecopyresampled($nova, $img, 0, 0, 0, 0, $max_x, $max_y, $original_x, $original_y);
    	imagejpeg($nova, $diretorio);
    	imagedestroy($nova);
    	imagedestroy($img);
       // se for menor, nenhuma alteração é feita 
       }else{
    	imagejpeg($img, $diretorio);
    	imagedestroy($img);
       }
       return($arquivo);
    }
    ?>

    Related posts:

    1. JQuery Plugin: Upload de Arquivos
    2. TimThumb: Gerando miniaturas com marca d’água (watermarks)
    3. PHP: Função para tratar nome de um arquivo na hora de fazer upload
    4. PHP: Função para gerar parcelas com dia de vencimento fixo (melhorado)
    5. PHP: Listar arquivos de diretório