Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

t12

Redução de Imagem

Recommended Posts

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:

Imagem Postada

Exemplo de Imagem da Webmotors

 

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);
	}

Alguém conhece algum script que faça com que a imagem seje reduzida sem distorções?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é a qualidade e sim as dimensões da foto original.

Após reduzida, a largura e a altura devem ser proporcionais a original.

você está redimensionando para um tamanho fixo, o que pode destoorcer a imagem se as dimensões originais forem desproporcionais.

O que eu faço é definir somente a largura da imagem reduzida e diminuir proporcionalmente a altura., usando regrinha de três.As imagens nunca ficam distorcidas. No site, a altura com alguns pixels de diferença, não fazem tanta diferença.

Depois, sugiro ao cliente usar sempre a mesma resolução e se possível, sempre a mesma máquina, evitando diferença entre as fotos.

Como uso sempre a mesma largura. costumo listar as fotos verticalmente no site, assim, as diferentes alturas não fazem diferença.

Para imagens dispostas horizontalmente, onde largura e altura devem ser as mesmas, a foto original deve ter dimensões proporcionais, por isso sugiro mesma resolução e mesma máquina, pois a resolução de uma máquina para outra pode variar.

Espero que essa dica ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tamanho da imagem reduzida, sempre fica proporcional ao original, só que o tamanho nunca irá ultrapassar os 300 por 225 px, mas sempre proporcional ao original.

 

Se puder me passar o código que você tem por e-mail eu agradeço: tiago12@gmail.com

 

Mesmo assim agradeço pela força

 

valew!!!

 

O problema não é a qualidade e sim as dimensões da foto original.

Após reduzida, a largura e a altura devem ser proporcionais a original.

você está redimensionando para um tamanho fixo, o que pode destoorcer a imagem se as dimensões originais forem desproporcionais.

O que eu faço é definir somente a largura da imagem reduzida e diminuir proporcionalmente a altura., usando regrinha de três.As imagens nunca ficam distorcidas. No site, a altura com alguns pixels de diferença, não fazem tanta diferença.

Depois, sugiro ao cliente usar sempre a mesma resolução e se possível, sempre a mesma máquina, evitando diferença entre as fotos.

Como uso sempre a mesma largura. costumo listar as fotos verticalmente no site, assim, as diferentes alturas não fazem diferença.

Para imagens dispostas horizontalmente, onde largura e altura devem ser as mesmas, a foto original deve ter dimensões proporcionais, por isso sugiro mesma resolução e mesma máquina, pois a resolução de uma máquina para outra pode variar.

Espero que essa dica ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara se puder me mandar por e-mail o código do site

 

ficaria muito grato..

 

ou postar aqui e me enviar uma MP dizendo que postou!!!

 

ultimamente esta corrido a minha vida!

 

quase num tenho tempo para o forum

 

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.