Ir para conteúdo

POWERED BY:

Arquivado

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

kidh0

Criar thumbs para imagens dinamicamente

Recommended Posts

Daí gurizada...

 

Estou trabalhando ainda em cima de um álbum de fotos, até agora quando cadastrava-se uma foto, o script criava um thumb e uma imagem normal.

 

O que eu estou tentando fazer é um script que gere a imagem a partir de uma existente no servidor. Gerar a imagem eu consigo através de uma função, o que eu não consigo é fazer essa função retornar a imagem, ela só retorna uma linha gigantesca de códigos.

Sei que isso se deve a falta do header apropriado, mas quando coloco o header... dá merda

 

Alguém podia me dar uma ajuda???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria muito lento criar os thumbs assim???Uma opção seria salvar somente o nome da imagem, sem o path no bd e na hora de puxar ela, definir que ela vem da pasta thumbs (onde estão as miniaturas), por exemplo, ou fotos(onde estão as originais).Mas fiquei curioso para saber como seria para criar esses thumbs...Quanto ao código eu não tenho problemas nenhum para trabalhar com imagens, só queria saber o toque mágico que faz uma função retornar uma imagem e não uma string de códigos como está acontecendo comigo ^_^

da pra gerar a imagem dinamicamente ,mas nao compensa porque toda hora o sistema teria que ficar processando é muito mais rapido ja ter as thumbs criadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem ver o código fica impossivel saber... Talvez você esteja inserindo a iamgem diretamente no banco de dados de forma incorreta, aí acontece isso. Mas existe um milhão de possibilidades, cada caso é um caso.Posta o código q mostra as miniaturas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não consegui fazer o código que mostra as miniaturas, somente o que as cria e salva no servidor:

function criathumb ($path){$size=getimagesize($path);$orig=imagecreatefromjpeg($path);$thumb=imagecreatetruecolor(120,90);imagecopyresampled($thumb,$orig,0,0,0,0,120,90,$size[0],$size[1]);imagejpeg($thumb,"img/");}
A minha dúvida seria mudar essa função para ela retornar a imagem sem precisar gravar nada no servidor, simplesmente retornar a imagem. Tipo:
<div><img src="<?php echo criathumb("teste.jpg"); ?>"></div>

Sem ver o código fica impossivel saber... Talvez você esteja inserindo a iamgem diretamente no banco de dados de forma incorreta, aí acontece isso. Mas existe um milhão de possibilidades, cada caso é um caso.Posta o código q mostra as miniaturas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não tá dando o nome da imagem gerada, só o diretório.$imagem_destino = "img/imagem.jpg";imageJPEG($thumb, $imagem_destino);Caso só queira exibi-la, não coloque o segundo parâmetro, assim você apenas aloca ela na memória. fica assim: imageJPEG($thumb);Existe ainda um terceiro parâmetro, que é a qualidade da imagem gerada. Dê uma olhada no guia de referência

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi falha minha não ter colocado o imagem.jpg... me esqueci na hora de postar... Mas como ficaria para retornar a imagem???Assim???

return imagejpeg($thumb);
Não falta um header dizendo que o que está vindo é uma imagem???

Você não tá dando o nome da imagem gerada, só o diretório.$imagem_destino = "img/imagem.jpg";imageJPEG($thumb, $imagem_destino);Caso só queira exibi-la, não coloque o segundo parâmetro, assim você apenas aloca ela na memória. fica assim: imageJPEG($thumb);Existe ainda um terceiro parâmetro, que é a qualidade da imagem gerada. Dê uma olhada no guia de referência

Compartilhar este post


Link para o post
Compartilhar em outros sites

header('Content-type: image/jpeg');Lembrando que não pode haver saída de dados além deste, senão vai haver um erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no caso de um album de fotos vai haver saida de dados antes... então é só não colocar o header que vai retornar a imagem???

header('Content-type: image/jpeg');Lembrando que não pode haver saída de dados além deste, senão vai haver um erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você insere o arquivo como se fosse a imagem, assim: <img src="arquivo.php" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bah cara.... beleza... valeu mesmo... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif É só manda a imagem a ser aberta pela variável, tipo imagem.php?imagem1.jpg....Valeu mesmo pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

você insere o arquivo como se fosse a imagem, assim: <img src="arquivo.php" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gurizada, agradeço muito a ajuda de todos.Queria sanar uma última dúvida (por enquanto): Usar esse sistema de criar os thumbs em realtime (não sei se é o termo certo) compremete a velocidade do meu sistema, se sim, em quanto ele compromete???

da pra gerar a imagem dinamicamente ,mas nao compensa porque toda hora o sistema teria que ficar processando é muito mais rapido ja ter as thumbs criadas

você insere o arquivo como se fosse a imagem, assim: <img src="arquivo.php" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

O processamento de imagens é algo que consome muito recurso do servidor, não tenha dúvidas. O quanto vai consumir, depende de fatores como o tamanho e qualidade da imagem a ser processada. você pode fazer um sistema pra testar isso, tipo, instale no seu micro um software que mede a utilização do processador e de memória ram, como o RamIdle faça uma script que utilize uma imagem original de 800 X 600 e depois repita o teste com uma imagem maior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive uma idéia... me diz o que tu achas...Usar um sistema tipo cache... tipo, o primeiro usuário que acessar a página vai gerar os thumbs que serão salvos no servidor... os próximos usaram essas imagens salvas sem a necessidade de forçar o servidor a criar novas...No final do dia ou da semana, limpava a pasta de thumbs e pronto...Pode ser meio estranho fazer o sistema assim... mas para um site de festas como é o que estou desenvolvendo... existem festas muito antigas que não podem ser deletadas e em servidores que não oferecem mais do que 300mb de espaço (claro, pro padrão do bolso), o espaço que seria ocupado por thumbs é valioso...

O processamento de imagens é algo que consome muito recurso do servidor, não tenha dúvidas. O quanto vai consumir, depende de fatores como o tamanho e qualidade da imagem a ser processada. você pode fazer um sistema pra testar isso, tipo, instale no seu micro um software que mede a utilização do processador e de memória ram, como o RamIdle faça uma script que utilize uma imagem original de 800 X 600 e depois repita o teste com uma imagem maior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As imagens podem ser geradas no momento em que são inseridas no sistema. Muito mais simples.

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.