Jump to content


Photo

Gerar Miniaturas


  • Faça o login para participar
26 replies to this topic

#1 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 09/04/2005, 15:06

Fala galera, olha eu aki de novo, bom, eu tava vendo aki e decidir mandar haver num tuto de gerar miniaturas de imgs com o PHP.

Você precisará de: Biblioteca GD Instalada.
-------------------------------------------------------------------------------------

As miniaturas de imagens, tambem sao conhecidas como thumbnails, sao bastante comuns em Web. Normalmente sao utilizadas para exibir amostras das imagens originais. Alguns webmasters, principalmente dos sites que publicam fotos, criam uma espécie de álbum de fotografias, onde o visitante pode clicar sobre a miniatura para ver a imagem no seu tamanho real.

Outro exemplo pode ser citado sao as livrarias virtuais. Se voce ja acessou o site de alguma dessas livrarias, provavelmente ja deve ter visto a capa de um livro em formato reduzido.

Existem duas formas de exibir miniaturas de imagens em uma pagina. Uma delas é utilizar apenas HTML para exibir a imagem original em dimensoes reduzidas. Porem este nao é o metodo ideal, pois o navegador ira receber a imagem em seu tamanho original e ainda terá que rendimencioná-la.

Outra forma consiste em gerar miniaturas em arquivos separados. É aí que entra o PHP, pois a geracao desses arquivos pode ser feita de forma automática, o que lhe pouparia um bom tempo e voce nem precisaria ter um editor grafico instalado em sua maquina. Vamos agora criar um programa em PHP para realizar essa geracao.

O programa apresentado a seguir, o miniatura.php, cria imagens reduzidas a partir da imagem que voce especificar, permitindoainda que voce determine se o tamanho da miniatura será fixo ou se será calculado como um percentual di tamanho da imagem original. Acompanhe o código:

miniatura.php

<?php
// define a imagem a partir da qual será gerada a minuatura
$imagem = "imagem_original.jpg";

// **** configurações da miniatura *******
$tamanho_fixo = "N";    // S ou N
$largura_fixa = 192;    // usado somente com tamanho_fixo=S
$altura_fixa = 144;    // usado somente com tamanho_fixo=S
$percentual = 40;      // usado somente com tamanho_fixo=N
// **************************************

if(!file_exists($imagem))
{
    echo "Arquivo da imagem não encontrado!";
    exit;
}
if($tamanho_fixo=="N" && ($percentual<1 || $percentual>100))
{
    echo "O percentual deve ser um número entre 1 e 100!";
    exit;
}

// monta o nome do arquivo resultante
$arquivo_miniatura = explode('.', $imagem);
$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";

// lê a imagem de origem e obtém suas dimensões
$img_origem = ImageCreateFromJPEG($imagem);
$origem_x = ImagesX($img_origem);
$origem_y = ImagesY($img_origem);

// se não for tamanho fixo, calcula as dimensões da miniatura
if($tamanho_fixo=="S")
{
    $x = $largura_fixa;
    $y = $altura_fixa;
}
else
{
    $x = intval ($origem_x * $percentual/100);
    $y = intval ($origem_y * $percentual/100);
}

// cria a imagem final, que irá conter a miniatura
$img_final = ImageCreateTrueColor($x,$y);

// copia a imagem original redimensionada para dentro da imagem final
ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x , $origem_y);

// salva o arquivo
ImageJPEG($img_final, $arquivo_miniatura);

// libera a memória alocada para as duas imagens
ImageDestroy($img_origem);
ImageDestroy($img_final);
?>

<html>
<head>
<title>Miniatura</title>
</head>
<body>
<p align="center">
<img src="<?php echo $imagem; ?>">
&nbsp;&nbsp;&nbsp;&nbsp;
<img src="<?php echo $arquivo_miniatura; ?>">
</p>
<p align="center">
<b>Imagem original</b>: <?php echo $imagem." (".$origem_x." x ".$origem_y.")";?><br>
<b>Miniatura gerada</b>: <?php echo $arquivo_miniatura." (".$x." x ".$y.")";?>
</p>
</body>
</html>


Para mais informacoes sobre a biblioteca GD:

http://br.php.net/gd

Bom, foi isso ae, espero que gostem.

Faloww (y)

#2 cataflan

cataflan

    Turista

  • Usuários
  • 37 posts
  • Sexo:Não informado

Posted 18/06/2005, 13:44

eu posso faze isso com upload? tipo eu faco um form de upload... ai apartir dessa imagem ela cria a miniatura.. como faz? ond ta imagem original eu ponho oq?

#3 lifeofgames

lifeofgames

    Ativo

  • Usuários
  • 325 posts
  • Sexo:Masculino
  • Localidade:Minas Gerais

Posted 29/06/2005, 23:57

como fazer isso com gif animado, para que o gif continue mechendo?
eu ja vi isso na net
Aprendendo a Amar - O Encanto é aqui!
www.aprendendoaamar.com

#4 hal

hal

    Doutor

  • Usuários
  • 842 posts
  • Sexo:Masculino

Posted 06/09/2005, 14:05

to com uma dúvida, onde diz:
$imagem = "imagem_original.jpg";
eu coloquei
$imagem = "minha_foto.jpg";
mas ainda assim, apareceu "arquivo de imagem não encontrado"...
pq não consegui abrir a imagem e criar as miniaturas?

#5 Inu_yasha

Inu_yasha

    www.inuforum.cjb.net

  • Usuários
  • 269 posts
  • Sexo:Não informado

Posted 06/09/2005, 14:31

simples, a imagem nao existe.
se ela n esta no mesmo diretorio, poe:
diretorio/imagem.jpg

ok?

#6 hal

hal

    Doutor

  • Usuários
  • 842 posts
  • Sexo:Masculino

Posted 06/09/2005, 18:28

foi o que eu fiz, claro, nesse caso, eu passei a imagem para uma pasta, indiquei o caminho, e nada, depois , coloquei a foto na mesma pasta onde estava esse script, e nada...

:unsure:


EDITADO:

po, galera, era isso mesmo!!! na bobeira, acabei duplicando esse script, e tava usando o OUTRO ao inves desse!!
mas ainda rola outro problema:

Fatal error: imagecreatetruecolor(): requires GD 2.0 or later in d:\arquivos de programas\easyphp\www\testes\thumbinail\img.php on line 45


bom, parece que ele tá pedindo essa biblioteca, ok!!!
mas acontece que eu uso o easy php...tem como resolver isso???

Edição feita por: hal, 07/09/2005, 17:44.


#7 MarcoviZ

MarcoviZ

    ubuntu for human being

  • Usuários
  • 1137 posts
  • Sexo:Não informado

Posted 22/09/2005, 10:55

abre o php.ini e procura por "gd2" (sem aspas) ai ele vai tar uma linha la... ai vc descomenta (tira o ; do comeco) salva e reinicia o apache
[]'s

#8 Rodrigo Lima

Rodrigo Lima

    Normal

  • Usuários
  • 71 posts
  • Sexo:Não informado
  • Localidade:São Paulo/SP
  • Interesses:Mulheres.

Posted 22/09/2005, 22:18

aqui funcionou belezamente ;)


Parabéns ao criador :)

#9 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 10/10/2005, 21:54

Acho que voce pecou em uma coisa alem dessas ja destacadas


Voce deveria ter Detacado

Você precisará de: Biblioteca GD 2.0 Instalada.
-------------------------------------------------------------------------------------


Pois nao existe somente uma versao da mesma


Falopa!

#10 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 29/10/2005, 21:41

existe algum tutorial que ensine a instalar essa biblioteca no meu host? não no meu pc mas sim no host q eu hospedo meu site
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#11 asturmas

asturmas

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 13/12/2005, 19:04

E um host pago ou gratuito??

#12 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 19/02/2006, 20:12

outra duvida: eu posso usar esse script apenas em arquivos de imagens locais ou posso gerar uma miniatura de uma url de imagem de outro host?
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#13 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 19/02/2006, 22:02

Bom, pelo fato de utilizar a função file_exists() ele impedirá que você use URL parar indicar o arquivo.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#14 gersonab

gersonab

    Normal

  • Usuários
  • 113 posts
  • Sexo:Não informado

Posted 03/05/2006, 18:29

A parada é a seguinte ...
Tenho um diretório com minhas imagens ( são várias ) gostaria d mostra-las em miniaturas e apartir destas abrir uma nova pagina com seu tamanho normal e seus dados , como faço para linkar estas miniaturas ?

#15 insidegui

insidegui

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:São Sebastião do Caí - RS
  • Interesses:Programação, Design de Interação/Interfaces

Posted 20/05/2006, 00:04

Warning: imagejpeg(): Unable to open '_mini.jpg' for writing in /home/saojose/public_html/sistemas/fotos/admin/miniatura.php on line 51

:(
CIO: www.precisodesite.com.br
Blogueiro: www.screencaster.com.br
Mac User =]




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq