criar thumbnails com php
Para todas aquelas pessoas que querem criar thumbnails e que nao sabem que software escolher, podem cria-los a partir do webserver com php.
Para isso apenas e requerido o pacote php-gd ( apt-get install php5-gd) e acho que precisam de reiniciar o apache.
Procurei MUITO no google ate encontrar um script que fizesse a coisa de maneira simples e eficaz ate que encontrei: http://icant.co.uk/articles/phpthumbnails/
Depois alterei uns pequenos detalhes para que gerasse apenas as fotografias que ainda nao tenham sido geradas, (senao ia processar todas outravez, em vez de apenas as novas).
Da para defenir o tamanho maximo horizontal e o tamanho maximo vertical, o outro sera relativo para nao deformar a imagem.
Nota: nao sei porque, nao funciona se a extensao JPG estiver com letras grandes, usem minusculas...
- o blogue de cusco
- Clique Iniciar Sessão ou registar-se para colocar comentários
- 824 leituras






Comentários
Isso acontece porque porque
Isso acontece porque muito provavelmente estás a correr esse script em GNU/Linux e como tal é case-sensitive.
É facil de corrigir esse "bug", onde tens:
foreach (glob("*.jpg") as $filename)
alteras para
foreach ((glob("*.jpg") as $filename) && (glob("*.JPG") as $filename))
(convem verificares antes se estás a correr isso numa máquina GNU/Linux porque se for no Windows faz com que muito provavelmente esteja a carregar as imagens 2 vezes visto que não é case-sensitive.
Espero ter ajudado.
Fikem bem,
[[[]]]
Agora reparo, O teu
Agora reparo,
O teu "problema" é a criar ou é a visualizar? O que eu "alterei" foi para visualizar as imagens, mas depois fiquei a matutar na coisa e surgiu a pergunta, mas será que o script está a gerar as imagens e apenas não as está a apresentar ou será que nem as está a gerar?
Fikem bem,
[[[]]]
De qualquer forma o
De qualquer forma o possível erro está no tn.php quando ele faz um preg_match:
if
(preg_match("/jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($name);}
if
(preg_match("/png/",$system[1])){$src_img=imagecreatefrompng($name);}
Experimenta por assim:
if (preg_match("/jpg|jpeg|JPG|JPEG/",$system[1])){$src_img=imagecreatefromjpeg($name);}
if (preg_match("/png|PNG/",$system[1])){$src_img=imagecreatefrompng($name);}
Não tenho a certeza se isto corre, mas o "erro" deve de estar nesse preg_match que também é case-sensitive. Depois diz-me algo!
Espero ter ajudado em algo.
Fikem bem,
[[[]]]
o glob e o if que verificam
o glob e o if que verificam se a imagem ja foi executada e expoe as fotografias foi a parte que eu implementei, sei que n adicionei png porque nao tinha necessidade.
a cosia e toda no tn.php e sim e quando cria
tens razao era o preg match! ja funciona!
:))
ja agora... eu nao pesquisei mas em http://www.php.net/manual/en/ref.image.php diz que GIF ja e suportado com escrita pelo GD em php 4.3.9 e 5.0.1 para cima (como e o meu caso)
tb so falta implementar o createfromgif :P
thanks kekas
b0as, Basta adicionar umas
b0as,
Basta adicionar umas linhas de código ao tn.php
if(preg_match("/jpg|jpeg|JPG|JPEG/",$system[1])){$src_img=imagecreatefromjpeg($name);}
if(preg_match("/png|PNG/",$system[1])){$src_img=imagecreatefrompng($name);}
if(preg_match("/gif|GIF/",$system[1])){$src_img=imagecreatefromgif($name);}
e
if (preg_match("/png|PNG/",$system[1]))
{
imagepng($dst_img,$filename);
} elseif (preg_match("/gif|GIF/",$system[1])) {
imagegif($dst_img,$filename);
} else {
imagejpeg($dst_img,$filename);
}
imagedestroy($dst_img);
imagedestroy($src_img);
(Eu inseri linhas anteriores para poderes inserir no local certo.)
Nada de complicado. :)
Em principio já terás suporte para jpeg,png e gif. Em caso de dúvida é só perguntar. :)
Fikem bem,
[[[]]]
b0as, Esqueci-me de meter o
b0as,
Esqueci-me de meter o pics.php a funcionar :x
(Só à pouco é que tava a falar com o Althaser sobre isso e lembrei-me deste pormenor! lol)
Aqui esta as alteraçoes TODAS:
Clickem lá aqui.. ora a ver se dá :P
Espero que percebam!
Fikem bem,
[[[]]]
oh kekas! o tn.php funciona
oh kekas! o tn.php funciona perfeitamente o pics e que parece que nao! aparece um "Parse error: syntax error, unexpected T_AS in /home/cusco/public_html/pics/pics.php on line 6"
!!! :(
la alterei o pics.php e criei um foreach para cada um:
foreach (glob("*.PNG") as $filename)
{
echo " codigo html k n posso colar aqui para mostarr imagem "
}
foreach (glob("*.png") as $filename)
{}
foreach (glob("*.gif") as $filename)
{}
foreach (glob("*.JPG") as $filename)
ETCetra
Tenho a certeza de haver uma maneira melhor mas nao tenho paxorra para pesquizar :(
cheerio!