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?
Pergunta
Tesla
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:
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.