Ir para conteúdo

POWERED BY:

Arquivado

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

Alex Camargo

Redimensionar imagem na hora de mostrar

Recommended Posts

Eae pessoal!

 

To com o seguinte problema, precisando da ajuda de vocês:

 

Eu queria redimensionar uma foto somente na hora de mostrar, tem como? No caso usando o PHP (alguma classe)..

 

Por exemplo:

 

Tenho uma imagem de 1500x1500 no meu servidor, dai na hora de mostrar ele executa uma função em php e mostra essa imagem em 850x850?

 

Valeuuu ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

não dá pra setar no próprio código?

...width="850" height="850"...

e daí só chama via php o nome da imagem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eai amigo!

 

Cara, o problema é que assim a imagem ficaria "esmagada".

Teria que redimensionar mesmo.

Eu to usando um script que faz upload com resize, e ta ok! Mas nesse caso queria o resize somente na hora de mostrar..

 

Valeuu ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vi o link, bem legal os exemplos.. Só todos eles só redimensionam na hora de mostrar a largura e altura..

Eu preciso que crie um thumb da imagem, somente para mostrar. Uso scripts que criam thumbs em php, mas só sei usar no upload.

 

Desculpe, sua resposta está ok, eu que talvez não fui bem claro no título do tópico.

 

Valeuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$foto = $_GET['foto'];
header('Content-type: image/jpeg');
list($largura, $altura) = @getimagesize($foto);
$largura_mini = 120;
$altura_mini = 90;
$foto_mini = imagecreatetruecolor($largura_mini, $altura_mini);
$imagem = imagecreatefromjpeg($foto);
imagecopyresampled($foto_mini, $imagem, 0,0,0,0, $largura_mini, $altura_mini, $largura, $altura);
imagejpeg($foto_mini, null, 75);?>

 

 

Esse código gera o thumb da imagem. Você pode salvá-lo num arquivo e chamá-lo na hora de exibir a imagem.

 

Algo como <img src="arquivo_gera_miniatura.php?foto=foto.jpg" />

 

O problema de gerar a miniatura na hora de mostrar é que a página vai ficar lenta para carregar e você vai consumir mais processamento do servidor. A maior ou menor demora depende da quantidade de imagens que você vai redimensionar na hora da exibição.

 

Avalie se essa demora faz diferença para você. No meu caso, aumentou em média, segundo a ferramenta para webmasters do Google, cerca de 7 segundos a mais em relação às outras páginas. Dependendo do site, pode não ser um empecilho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eai amigo!

 

Interessante seu código, como faço para substituir o

$foto = $_GET['foto'];

por uma imagem que já esta no servidor? No caso como mando a imagem para a variável

$foto

?

 

Uso o

fopen

?

 

Valeuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse exemplo a variável "$foto" vem do banco de dados. Ao enviar as imagens, gravei o nome de cada no banco, aí é só dar um loop nos registros e mostrar. Se a foto estiver na pasta imagens, por exemplo, e no banco tiver apenas o nome da imagem, use o caminho completo: imagens/$foto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa, funcionou, bem simples mesmo..

 

Por acaso vocês sabem como fazer um recorte automático de 350 x 350 px na imagem? NÃO é redimensionamento, e sim um recorte..

 

Valeuu ai galera, tão me ajudando mto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae!

 

Acabei baixando essa classe "WideImage".

 

Precisava cortar 350x350 ao centro a imagem na hora de mostrar somente.

Com 3 linhas resolvi.. hehehe

 

Se precisarem de algo que possa ajudar, estamos ai!

 

Um abraço, valeuu pela atenção!

 

<?php

// Chama o arquivo com a classe WideImage
require('lib/WideImage.php');


$foto = 'alex.jpg';
WideImage::load($foto)->crop('center', 'center', 350, 350)->output('jpg');

?>

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.