Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) função para verificar se o tamanho é menor?


Tesla

Pergunta

galera a pouco tempo postei uma função aki que redimencionava a imagem pra menor que 100 x 100 de acordo com a proporção da imagem, agora veio um problema! Ela redimensiona de acordo com a proporção certinha, mas um problema, certas imagens não são redimensionadas pra menos de 100x100, olha a função ae:

function upresimg ($imagem, $nome, $larg, $altu) { //-------- Diretorio da img, nome da imagem, $lagura desejada, $altura desejada
$file = getimagesize($imagem);
list($filew, $fileh) = getimagesize($imagem);
list($rw, $rh) = getimagesize($imagem);
$filetype = $file[2]; //----- Extensão
$suporttype = array ('1','2','3'); //------- Extensões de retorno = suporte de filetype
$desttype = in_array ($filetype, $suporttype); //---------- Retorna true se suporta extensão, caso contrário false
$destexten = ''; //------------ inicializa a variável de extenção
$desth = $altu; //-------------altura max
$destw = $larg; //------------- largura max
$qualjpg = 100; //------ Qualidade da Imagem 0 a 100 jpg
$qualpng = 9; //------- Qualidade da Imagem 0 a 9 png
$propimg = $filew / $fileh; //---------------proporção do arquivo original
$diretorio = 'imgs/user_avatar/';//------------ Diretório da img
if ($desttype) { //-------------Se for suportada a extenção
   if ($filew > $destw) //---------proporção de largura
   {
      $filew = $destw;
      $fileh = $filew / $propimg;
      if ($filehl > $desth) //---------proporção de altura
      {
         $fileh = $desth;
         $filew = $fileh * $propimg;
         
      }
   }
   $tamx=$filew;
   $tamy=$fileh;
   //------------------- Começa a tratar a imagem
   if ($filetype == '1'){ //---------- GIF
          $img_ori = imagecreatefromgif ($imagem);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tamx, $tamy); //---------  Cria uma imagem sem nada
     imagecopyresampled( $tmp_img, $img_ori, 0, 0, 0, 0, $tamx, $tamy, $rw, $rh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.gif'; //---------- Direotrio da img, com nome e extensão
     imagegif( $tmp_img, $updire );
     $ext = "gif";
     return $ext;
     }
     elseif ($filetype == '2'){ //------------ JPG
         $img_ori = imagecreatefromjpeg ($imagem);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tamx, $tamy); //---------  Cria uma imagem sem nada
     imagecopyresampled( $tmp_img, $img_ori, 0, 0, 0, 0, $tamx, $tamy, $rw, $rh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.jpg'; //---------- Direotrio da img, com nome e extensão
     imagejpeg( $tmp_img, $updire, $qualjpg );
          $ext = "jpg";
     return $ext;
     }
     elseif ($filetype == '3') {//----------- PNG
          $img_ori = imagecreatefrompng ($imagem);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tamx, $tamy); //---------  Cria uma imagem sem nada
     imagecopyresampled( $tmp_img, $img_ori, 0, 0, 0, 0, $tamx, $tamy, $rw, $rh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.png'; //---------- Direotrio da img, com nome e extensão
     imagepng( $tmp_img, $updire, $qualpng );
          $ext = "png";
     return $ext;
     }
}
else { //-------- Se a extensão for inválida
$string = 1;
return $string;
}
}

tentei colocar um while onde são feitos os cálculos da largura e altura da imagem (antes de proporção de largura, e fechando depois de proporção altura) com a condição de ($filew > $destw) or ($fileh > $desth), mas não deu certo, deu akela mensagem de erro porque ficou 30 segundos na linha 31 no caso onde eu coloquei o while, e agora? como eu faço pra só fazer o processo de salvar a imagem depois que $filew for menor que $destw e $fileh for menor que $desth?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...