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:


Show de bola o script, funcionou direitinho, parabéns pelo post.