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

imagefill - só preenche a metade do fundo.


#Tigre

Pergunta

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)

u11190909231559.jpg

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

Até agora não há respostas para essa pergunta

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...