Bobrinha 4 Denunciar post Postado Agosto 29, 2012 Olá pessoal. Procurei no forum e não web e ainda não encontrei o que estou precisando muito, Redimensionar imagem mais ter 2 variaves pra definir largura e altura definidas por mim, todos os script que encontrei redimensionam a imagem proporcionalmente. Algum script? alguma função? help Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 29, 2012 O segredo está nessa função, mesmo que você defina o tamanho, ela irá aredondar para que a imagem não fique deformada... vamos ao exemplo bem simples. Funções Upload. funcoes.upload.php <?php function reduz_imagem($img, $max_x, $max_y, $nome_foto) { //pega o tamanho da imagem ($original_x, $original_y) list($width, $height) = getimagesize($img); $original_x = $width; $original_y = $height; // se a largura for maior que altura if($original_x > $original_y) { $porcentagem = (100 * $max_x) / $original_x; } else { $porcentagem = (100 * $max_y) / $original_y; } $tamanho_x = $original_x * ($porcentagem / 100); $tamanho_y = $original_y * ($porcentagem / 100); $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); $image = imagecreatefromjpeg($img); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); return imagejpeg($image_p, $nome_foto, 100); } ?> cadastro.php <form name="teste" id="teste" method="POST" action=""> <input type="file" name="arquivo" id="arquivo"> <input type="submit" name="ok"> </form> <?php if($_SERVER['REQUEST_METHOD']=='POST') { include('funcoes.upload.php'); $arq_nome = $_FILES['arquivo']['name']; $arq_size = $_FILES['arquivo']['size']; $arq_type = $_FILES['arquivo']['type']; $arq_tmp = $_FILES['arquivo']['tmp_name']; $arq_erro = $_FILES['arquivo']['error']; define('PREFIX','normal_'.time().'_img.jpg'); define('PREFIXTB','thumb_'.time().'_img.jpg'); define('PASTA','uploads/'); $path = PASTA.PREFIX; $path_tb = PASTA.PREFIXTB; //Largura e altura da imagem normal reduz_imagem($arq_tmp, 430, 300,$path); //Largura e altura dthumb reduz_imagem($arq_tmp, 163, 80,$path_tb); (is_uploaded_file($arq_tmp)) ? true : false; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Setembro 4, 2012 Olá Alaerte Tentei usar seu script copiei e coloquei exatamente como postou e ao selecionar uma imagem e tentar enviar varios erros aconteceram... Warning: Division by zero in D:\AppServ\www\teste\funcoes.upload.php on line 16 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in D:\AppServ\www\teste\funcoes.upload.php on line 22 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in D:\AppServ\www\teste\funcoes.upload.php on line 24 Warning: imagejpeg(): supplied argument is not a valid Image resource in D:\AppServ\www\teste\funcoes.upload.php on line 27 Warning: Division by zero in D:\AppServ\www\teste\funcoes.upload.php on line 16 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in D:\AppServ\www\teste\funcoes.upload.php on line 22 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in D:\AppServ\www\teste\funcoes.upload.php on line 24 Warning: imagejpeg(): supplied argument is not a valid Image resource in D:\AppServ\www\teste\funcoes.upload.php on line 27 Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Setembro 5, 2012 Você deve estar tentando fazer o upload de imagem com resolução alta, veja os erros e tente corrigir o script. Aqui pra mim funciona perfeitamente. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Setembro 5, 2012 Mais o objetivo é esse pegar uma imagem grande em alta resolução e diminuir para um tamanho especifico Consegui com essa classe http://www.verot.net/php_class_upload.htm Porem agora preciso pegar o nome da imagem dimensionada para jogar no DB Compartilhar este post Link para o post Compartilhar em outros sites