Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal, tudo bem?
Eu estou com um problema aqui que não consigo achar no google ou que pelo menos não consigo fazer.
A questão é a seguinte, eu redimensionei a imagem de acordo com a altura ($largura_fixa) máxima estipulada, porém, em certas imagens a largura passa do tamanho que eu quero ($largura_fixa). Sendo assim, como faço para cortar esta parte da imagem que passou da $largura_fixa?
Me ajudem por favor.
gera_miniatura.php
<?php
//define a imagem a partir da qual será gerada a miniatura
$imagem = "imoveis/$name";
// configurações da miniatura
$tamanho_fixo = "S"; //S ou N
$largura_fixa = 100; //usado somente com tamanho_fixo = S
$altura_fixa = 150; //usado somente com tamanho_fixo = S
$percentual = 40; //usado somente com tamanho_fixo = N
//
if(!file_exists($imagem))
{
echo "Arquivo da imagem não encontrado!";
exit;
}
if($tamanho_fixo == "N" && ($percentual<1 || $percentual>100))
{
echo "O percentual deve ser um número entre 1 e 100!";
exit;
}
//monta o nome do arquivo resultante
$arquivo_miniatura = explode('.', $imagem);
$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";
//lê a imagem de origem e obtém suas dimensões
$img_origem = ImageCreateFromJPEG($imagem);
$origem_x = ImagesX($img_origem);
$origem_y = ImagesY($img_origem);
//se não for tamanho fixo, calcula as dimensões da miniatura
if($tamanho_fixo == "S")
{
$x = ($altura_fixa * $origem_x) / $origem_y;
$y = $altura_fixa;
} $x = intval($origem_x * $percentual/100);
$y = intval($origem_y * $percentual/100);
}
//cria a imagem final, que irá conter a miniatura
$img_final = ImageCreateTrueColor($x, $y);
//copia a imagem original redimensionada para dentro da imagem final
ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x, $y, $origem_x, $origem_y);
//salva o arquivo
ImageJPEG($img_final, $arquivo_miniatura);
//libera a memória alocada para as duas imagens
ImageDestroy($img_origem);
ImageDestroy($img_final);
?>Carregando comentários...