Ir para conteúdo

Arquivado

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

tubadc

diminuir imagem na proporção...

Recommended Posts

Iai galera beleza?

 

Estou com um problemaum estou desenvolvendo o site www.costuraperfeita.com.br e na parte de seções, onde irão entrar as seções da revista não cosigo fazer com que a imagem pequena não distorça ou seja, quando dou o up da imagem pelo form básico, ela vai pra uma pasta e fica gravado apenas o caminho no banco, sendo assim tenho apenas uma imagem aparecendo nos dois lugares uma na notinha que aparece outra quando é clicado no leia mais...m, o qual mostra a imagem full, porem a imagem pequena fica total distor]cida pois não sei como faço para redimensinoar a imagem igualmente sem perder proporção : segue um pedaço do código onde mostro a imagem pequena:

 

PHP

[*]

[*]

[*]print("<table width = '100%' align = 'center' class='style2'>");

[*]@$noticia_formatada = substr($linha[noticia], 0, 250)."... <a href='secoes/mostrar_noticia.php?id=$linha[id]'>leia mais ... </a>";

[*]

[*] print("<tr><td colspan=' 2' bgcolor='#D5EAFF'><div align='center' valign='top'><strong>Seção - $linha[secao]</strong></div></td></tr>");

[*] print("<tr><td colspan=' 2' ><div align='left'><class='style2'><strong>$linha[titulo]</strong></div></td></tr>");

[*] print("<tr><td width='15%' ><div align='left'><img src='secoes/img_noticias/$linha[imagem]' alt='sem imagem' width='75' height='60'></div> 

[*] <td width='85%'><div align='justify'>$noticia_formatada</div></td><br>");

[*] print("<tr><td colspan=' 2'><div align='right'><class='style2'>$linha[data_formatada]</div></td></tr>");

[*] $i++;

[*] }

[*] print("</table>");

 

alguem tem alguma sugestão? Pois procurei no forum e achei apenas redimensionamento para algum valor e naum para % por ex....., jah adianto que naum adinta por %....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas, se você sabe como diminuir de 200 para 20, por exemplo, então é qual é a dúvida? Veja só, você diz q sabe diminuir para um valor exato, mas não sabe diminuir para uma porcentagem do valor exato. É só uma questão de lógica. Se você tem uma imagem com 200 px d largura, mas você quer q ela diminua para 50%. 50% = 0,5, ou seja, é só você mandar o diminuir para (200*0,5).MAS, se a sua dúvida é COMO DIMINUIR A IMAGEM, MANTENDO AS PROPORCOES DE LARGURA E ALTURA, então, façamos assim.Primeiro, você tem que descobrir a largura (ou altura, você é quem sabe, nesse exemplo, vamos usar a largura).A função getimagesize($CaminhoDaImagem) retorna um array com 4 valores, o primeiro índice retorna a largura. $teteu = getimagesize(foto1.jpg);$largura = $teteu[0];$altura = $teteu[1];Supondo que, a largura terá 200 kb, e que a altura terá 150, e, de posse desses dados, você manda o script diminuir a imagem para 50 de largura e para uma altura q não distorça. você vai utilizar matemática agora200 (largura original) / 50(nova largura) = 4 (coeficiente)Se, meu coeficiente de diminuição é 4, é fácil achar minha futura altura$nova_altura = $altura/$coeficiente = 150/4 = 37,5.Portanto, $nova_altura será igual a 37,5.Você pode fazer a mesma coisa invertendo-se a altura e a largura.Espero que tenha tirado a sua dúvida.Faloura gelada

Compartilhar este post


Link para o post
Compartilhar em outros sites

é tal como o klawdyo falou voçe primeiro tem de saber o width e o height da imagem, eu uso assim:

PHP

[*]list($width, $height) = getimagesize('imagens/imagem_tal.gif');

 

depois tenho uma função que faz o que o klawdyo falou tb

PHP

[*]

[*]function imagem($width,$height,$imagem,$aprox=150)

[*]{

[*] $x = $width;

[*] $y = $height;

[*] if($x >= $y){

[*] if($x > $aprox)

[*] {

[*] $x1= (int)($x * ($aprox/$x));

[*] $y1= (int)($y * ($aprox/$x));

[*] } else {

[*] $x1 = $x;

[*] $y1 = $y;

[*] }

[*] } else {

[*] if($y > $aprox){

[*] $x1 = (int)($x * ($aprox/$y));

[*] $y1 = (int)($y * ($aprox/$y));

[*] } else {

[*] $x1 = $x;

[*] $y1 = $y;

[*] }

[*] }

[*] $x = $x1;

[*] $y = $y1;

[*] return '<img src="'.$imagem.'" width="'.$x.'" height="'.$y.'">';

[*]}

[*]

 

o valor $aprox é para se por exemplo voçe tiver uma imagem com o width maior que 150 ele vai reduzi-la ate ela fikar com 150 de width e por ai é só voçe testar, se num der poste ai de novo :)

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.