Ir para conteúdo
Fórum Script Brasil

Danilo Reis

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que Danilo Reis postou

  1. Pessoal.. Encontrei a solução.. Basta substituir a linha $alt = ceil((((50*$alt_destino)/100))-ceil($maxaltura/2)); por $alt = 0; Fica ai o código pra quem um dia precisar desse tipo de função. :rolleyes:
  2. Bom dia à todos.. Pessoal enfrento o seguinte problema. Tenho um código em PhP, criado por Felipe Oliveira, que faz o seguinte. Pega a imagem real, e redimensiona para o tamanho especificado, cortando a imagem caso necessário. Segue o código abaixo: class OBImagem { function redimensiona_fixo($origem,$destino,$maxlargura,$maxaltura,$qualidade=80) { if(!strstr($origem,"http") && !file_exists($origem)) echo("Arquivo de origem da imagem inexistente"); return false; } $ext = strtolower(end(explode('.', $origem))); if($ext == "jpg" || $ext == "jpeg") { $img_origem = @imagecreatefromjpeg($origem); } elseif ($ext == "gif") { $img_origem = @imagecreatefromgif($origem); } elseif ($ext == "png") { $img_origem = @imagecreatefrompng($origem); } if(!$img_origem) { echo("Erro ao carregar a imagem, talvez formato não suportado"); return false; } $maxAltura = 20; do { $alt_origem = imagesy($img_origem); $lar_origem = imagesx($img_origem); $escala = min($maxAltura/$alt_origem, $maxAltura/$lar_origem); $alt_destino = floor($escala*$alt_origem); $lar_destino = floor($escala*$lar_origem); $maxAltura = $maxAltura+2; }while($alt_destino<=$maxaltura or $lar_destino<=$maxlargura); $alt = ceil((((50*$alt_destino)/100))-ceil($maxaltura/2)); $lar = ceil((((50*$lar_destino)/100))-ceil($maxlargura/2)); // Cria imagem de destino $img_destino = imagecreatetruecolor($maxlargura,$maxaltura); // Redimensiona imagecopyresampled($img_destino, $img_origem, -$lar, -$alt, 0, 0, $lar_destino, $alt_destino, $lar_origem, $alt_origem); imagedestroy($img_origem); $ext = strtolower(end(explode('.', $destino))); if($ext == "jpg" || $ext == "jpeg") { imagejpeg($img_destino,$destino,$qualidade); return true; } elseif ($ext == "gif") { imagepng($img_destino,$destino); return true; } elseif ($ext == "png") { imagepng($img_destino,$destino); return true; } else { echo("Formato de destino não suportado"); return false; } } } Chama a função pelo seguinte código: $OBImagem = new OBImagem(); $OBImagem->redimensiona_fixo('./foto1.jpg','./miniatura/foto1.jpg',203,99,100); O problema é: Essa função ao redimensionar, quando é necessário cortar a imagem, ele corta parte do topo da imagem, e parte do rodapé da imagem, ou seja ele redimensiona e corta deixando mais a parte central da imagem. Eu preciso que a função redimensione sem cortar o topo, cortando apenas a parte inferior da imagem se necessário. Mas não estou conseguindo arrumar a função. Abaixo umas imagens ilustrando o que preciso: IMAGEM REAL IMAGEM QUE A FUNÇÃO RETORNA IMAGEM QUE PRECISO Alguém tem alguma idéia de como corrigir isso? Obrigado
×
×
  • Criar Novo...