Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bobrinha

upload de imagens com redimensionamento de tamanho especifico

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.