Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou com um problema, que pode ser também de outros.
Fiz um site para uma revendedora de carros, até aí tudo bem.
O problema é na hora de inserir as fotos do veículo cadastrado.
Quando o cliente insere a foto, o sistema reduz a foto para o tamanho de 300x225 px para se adequar ao site.
O problema é que o resultado é que a imagem fica pouco distorcida.
Se comparar o sistema com o Webmotors, ele reduz a foto e fica bem definida. Este problema não se refere a qualidade da Imagem JPG pois comparei as duas fotos: uma do meu site e outra do Webmotors e o resultado é que a do meu site fica distorcida e a do Webmotors fica perfeita, e ambas as fotos estão em qualidade 66 do JPG.
Vou deixar aqui as duas imagens para fazer uma comparação:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.omegamult.com.br/exemploimagem/webmotors.jpg&key=8d5ae8fea726113b317861d8b9f36b8aefd12f61a28c1d0e72d642adf9344580" alt="Imagem Postada" />
Exemplo de Imagem da Webmotors
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.omegamult.com.br/exemploimagem/meusite.jpg&key=e3f1374d3319f8e13503627603a2dbfbc97d070e329c09558e02e6b0c3a50d22" alt="Imagem Postada" />
Exemplo de Imagem tratada pelo meu site
Veja o script que estou usando para reduzir a imagem
//IMAGEM GRANDE
if($largura>300||$altura>225) { //verifica se há necessidade de diminuir a imagem
//analisa tamanho para ver a porcentagem de diminuição
if($largura>$altura) {
$porcentagem=300/$largura*100;
} else {
$porcentagem=225/$altura*100;
}
$novalargura=$largura/100*$porcentagem;
$novaaltura=$altura/100*$porcentagem;
// DEFINE A IMAGEM DA QUAL SERÁ GERADA A MINIATURA
$imagem = $dest;
// DEFINIR O NOME DO ARQUIVO PARA O THUMBNAIL
$thumbnail = explode('.', $imagem);
$thumbnail = $imagem;
// DEFINIR AS DIMENSÕES PARA O THUMBNAIL
$x = $novalargura; // Largura
$y = $novaaltura; // Altura
// LÊ A IMAGEM DE ORIGEM
$img_origem = ImageCreateFromJPEG($imagem);
// PEGA AS DIMENSÕES DA IMAGEM DE ORIGEM
$origem_x = imagesx($img_origem); // Largura
$origem_y = imagesy($img_origem); // Altura
// ESCOLHE A LARGURA MAIOR E, BASEADO NELA, GERA A LARGURA MENOR
if($origem_x > $origem_y) { // Se a largura for maior que a altura
$final_x = $x; // A largura será a do thumbnail
$final_y = floor($x * $origem_y / $origem_x); // A altura é calculada
$f_x = 0; // Colar no x = 0
$f_y = round(($y / 2) - ($final_y / 2)); // Centralizar a imagem no meio y do thumbnail
} else { // Se a altura for maior ou igual à largura
$final_x = floor($y * $origem_x / $origem_y); // Calcula a largura
$final_y = $y; // A altura será a do thumbnail
$f_x = round(($x / 2) - ($final_x / 2)); // Centraliza a imagem no meio x do thumbnail
$f_y = 0; // Colar no y = 0
}
// CRIA A IMAGEM FINAL PARA O THUMBNAIL
$img_final = imagecreatetruecolor($x,$y);
// COPIA A IMAGEM ORIGINAL PARA DENTRO DO THUMBNAIL
ImageCopyResized($img_final, $img_origem, $f_x, $f_y, 0, 0, $final_x, $final_y, $origem_x, $origem_y);
// SALVA O THUMBNAIL
ImageJPEG($img_final, $thumbnail);
// LIBERA A MEMÓRIA
ImageDestroy($img_origem);
ImageDestroy($img_final);
}Carregando comentários...