#Tigre Postado Setembro 20, 2009 Denunciar Share Postado Setembro 20, 2009 Olá pessoal,estou usando este script para redimensionar imagem, com fundo (caso a imagem seja desproporcional).O sistema funciona direito, mas quando a imagem é vertical, o fundo só fica da cor desejada pela metade, só do lado esquerdo.Alguém saberia dizer porque acontece isso?Segue o código:$src = $foto1; $MaxLarg = 430; $MaxAlt = 325; $img = $executa($src); $numWdt = imagesx($img); $numHgt = imagesy($img); if ( ($MaxLarg > $numWdt) and ($MaxAlt > $numHgt) ) { $foto1_name_grande = $img; $width = $numWdt; $height = $numHgt; } else { $areanova = $MaxLarg*$MaxAlt; $largarea = $MaxAlt * $numWdt; $altarea = $MaxLarg * $numHgt; $maxlargarea = $areanova / $largarea; $maxaltarea = $areanova / $altarea; if ($maxlargarea > $maxaltarea) { $width = $maxaltarea*$numWdt; $height = $maxaltarea*$numHgt; } else { $width = $maxlargarea*$numWdt; $height = $maxlargarea*$numHgt; }; $foto1_name_grande = imagecreatetruecolor($width,$height); imagecopyresampled($foto1_name_grande, $img, 0,0,0,0,$width,$height,$numWdt,$numHgt); }; if($width < $MaxLarg) { $nx = ($MaxLarg-$width)/2; } else { $nx = 0; } if($height < $MaxAlt) { $ny = ($MaxAlt-$height)/2; } else { $ny = 0; } $i = imagecreatetruecolor($MaxLarg,$MaxAlt); imagecopy($i, $foto1_name_grande , $nx,$ny, 0, 0,$MaxLarg,$MaxAlt); $cor = imagecolorallocate($i, 242, 242, 242); imagefill($i, 0, 0, $cor); imagejpeg($i, "$foto1",60);Abaixo tem uma amostra de como fica a imagem, quando é vertical (com o cinza só no lado esquerdo)Obs.: quando a foto é maior na horizontal, o fundo fica certo, cinza em baixo e em cima.Se alguém puder me passar a dica, agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
#Tigre
Olá pessoal,
estou usando este script para redimensionar imagem, com fundo (caso a imagem seja desproporcional).
O sistema funciona direito, mas quando a imagem é vertical, o fundo só fica da cor desejada pela metade, só do lado esquerdo.
Alguém saberia dizer porque acontece isso?
Segue o código:
Abaixo tem uma amostra de como fica a imagem, quando é vertical (com o cinza só no lado esquerdo)
Obs.: quando a foto é maior na horizontal, o fundo fica certo, cinza em baixo e em cima.
Se alguém puder me passar a dica, agradeço.
Link para o comentário
Compartilhar em outros sites
0 respostass 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.