Criar thumb (miniaturas) com PHP

Publicado: fevereiro 13, 2008 em PHP
Tags:, ,

Gerando miniaturas de imagens com PHP

Olá, veremos como gerar miniaturas de imagens (thumb) para uma galeria de fotos, apresentação de produtos ou qualquer outra aplicação. É muito comum encontrarmos sites que exibem miniaturas de imagens ainda da forma antiga, que trata-se de simplesmente redimensionar a imagem com algum software e criar uma pasta chamada thumbs ou miniaturas, muitos aplicativos utilizam essa solução, mas se você pensar em alguma solução mais inteligente que dispense o trabalho do webdesigner por ex. um cms (gerenciador de conteúdo) fica difícil utilizar essa antiga solução, imagine vender ao seu cliente um sistema onde ele possa gerenciar seu conteúdo sem precisar de você, agora imagine que ele queira colocar miniaturas de fotos no site….dai complicou um pouco não é ? ele terá que enviar todas as imagens para você redimensionar e envia-las de volta para ele poder inserir no site, isso não parece ser um sistema com gerenciador de conteúdo, vamos tomar como exemplo um sistema para imobiliárias onde o proprietário cadastra os imóveis e envias as fotos para o site, agora tente imaginar a página principal com os imóveis em destaque……..estranho né, imagine um anúncio com uma foto 800×600 na página principal…agora imagine 20 anúncios como esse, eu acho que fica feio e você? Também não é, então vamos ver como mostrar a miniatura da foto original enviada para o sistema, acredite isso é muito simples!

Em 1º lugar verifique se o seu php está com a biblioteca gd ou gd2 instalada, se não estiver baixe o easyphp, instale e marque a opção gd2 em php extensions, alias o easyphp é maravilhoso, ele já instala o apache, php5 e mysql, se você não conhece está perdendo tempo, falarei sobre ele em um outro post.

Vamos ao arquivo index.php

<html>
<head>
<title>.: Thumbs :.</title>
</style> 
</head>
<body> 
    <img src=”thumb.php?img=image1.jpg” title=”imóvel cod 01″>
    <img src=”thumb.php?img=image2.jpg” title=”imóvel cod 02″>
</body>
</html>

Note que acima no src estamos passando a url da imagem para para o arquivo thumb.php, ao invés de passar diretamente a imagem, isso porque o arquivo thumb.php está encarregado de redimensionar a imagem original, mas esse redimensionamento ocorre somente na visualização, ele não altera propriamente a imagem, ela continua no seu tamanho original, apenas o que é mostrado é que foi redimensionado, isso tem que ficar claro, nenhuma imagem pequena é gerada, esse é o truque, o arquivo thumb.php apenas muda as propriedades da imagem para a visualização ok ?

Claro que nesse exemplo eu utilizei uma url pré-definida, mas para o caso de um sistema essa url deveria ser retornada por ex. de uma consulta SQL, no sisteminha (veja aqui o sisteminha) que fiz a algum tempo atrás eu criei uma tabela mais ou menos assim: codimovel_f , urlFoto, descFoto … onde no momento do upload da foto era feita uma inserção no banco de dados contendo a url da foto que acabara de ser enviada, para não repetir os nomes das imagens e eu não ter que ficar renomeando eu utilizei a função MD5() do PHP que gera um nome/string único, em um artigo posterior falarei sobre o MD5.

Vamos ver o tal arquivo chamado thumb.php

<?php
#recebendo a url da imagem
$filename = $_GET['img'];

#Cabeçalho que ira definir a saida da pagina
header(‘Content-type: image/jpeg’);

#pegando as dimensoes reais da imagem, largura e altura
list($width, $height) = getimagesize($filename);

#setando a largura da miniatura
$new_width = 120;
#setando a altura da miniatura
$new_height = 100;

#gerando a a miniatura da imagem
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

#o 3º argumento é a qualidade da miniatura de 0 a 100
imagejpeg($image_p, null, 50);
imagedestroy($image_p);
?>

Obs: Para salvar a imagem/thumb em um diretório altere a linha
imagejpeg($image_p, null, 50);
para
imagejpeg($image_p, ‘/diretorio/nomeImagem.jpg/’, 50);

Onde /diretorio/nomeImagem.jpg é o caminho e nome onde deseja armazenar a miniatura.

Muito simples não ? Agora você pode usar o CSS para dar uma geral nesse exemplo, ou pode fazer a coisa ficar mais bonita, você pode usar o lightbox, clique e veja o que você poderá fazer com LightBox! até a próxima.  

Download do pacote: thumbs.rar 
Aposto que quer ver funcionando!  então está ai o Thumbs funcionando

Rafael Clares

Comentários
  1. David disse:

    Olha otimo sistema de thumbs mais naum funcionou no meu servidor tenho php 5 sera q é isso ele tah erro interno 500 no iss”!!! o q sera q pode ser??? sera q pode me ajudar???

  2. David disse:

    Opa ja consegui resolver para funcionar no php5 tem q alterar as seguintes linha

    // recebendo a url da imagem
    $filename = $_GET['img'];

    // Cabeçalho que ira definir a saida da pagina
    header(‘Content-type: image/jpeg’);

  3. clares disse:

    Entendi, o problema é que você copiou e colou o código e ele ao invés de estar com aspas/apostofros estava com o ascento agudo/crase. mas tá ai, quem for copiar e colar altere os sinais agudo/crase para aspas/apostofros.

  4. Ola, boa noite.
    Parabens pelos artigos acessiveis que voce tem publicado. Para foi bem util e numa linguagem simples, possibilitando melhorarmos futuras implementacoes.
    Abraco.

  5. clares disse:

    Carlos, obrigado pelo feedback.

  6. Victor disse:

    Muito bom, usei e funcionou corretamente e sem complicação!!! Parabéns!

  7. era o que eu precisava, valeu, parabéns!

  8. João Luiz disse:

    Não consegui, no Firefox só aparecem quadradinhos.

  9. clares disse:

    Caro João, não só testei como o fiz visualizando no firefox, acredito que você tenha copiado o código e não alterou as aspas/apostrofos, leia os demais comentários ok. Obrigado pelo comentário.

  10. João Luiz disse:

    Amigo, grato pela presteza, desculpe.
    Segundo eu entendi as linhas devem ficar assim:
    // recebendo a url da imagem
    $filename = $_GET['img'];

    // Cabeçalho que ira definir a saida da pagina
    header(“Content-type: image/jpeg”);

    Assim eu fiz. E ainda não funcionou.

    Estou enviando para a página assim:
    echo ”;

    Será que o erro esta ai?

  11. clares disse:

    João você tem instalada a biblioteca GD/GD2 no PHP? Se não tiver aconselho a você instalar o EasyPHP que já tem o PHP5 e as extensões necessárias, bastando apenas ativar através do próprio gerenciador do EasyPHP, por default o GD/GD2 está desabilitada. Talvez seja isso, ao clicar no link do exemplo funciona ai ? Abraços

  12. João Luiz disse:

    A biblioteca esta instalada e funcionado. Sim o exemplo funciona.
    Na minha pagina original as imagens aparecem grandes.
    O que fiz foi substituir na linha:
    echo ‘<img src=”‘;
    // echo $files.$entrada_arq.’”;
    O $files… por thumb.php?img

  13. clares disse:

    João, me desculpe mas acho que você deveria ler novamente o post. Não tem como errar! De toda forma
    irei disponibilizar o arquivo para download em http://clareslab.com.br/learn/thumbs.rar será mais fácil por que à medida que você vai alterando algo que já está funcionando eu já não tenho mais como ajuda-lo, infelizmente. Já está escrito no post como funciona, mas irei repetir…o arquivo thumbs.php retorna uma única imagem sendo preciso para isso passar a url da imagem! Abraços

  14. daniel disse:

    Vai me ajudar no projeto final da escola :D

  15. Amigo não conseguir fazer funcionar,ao aparece uns quadradinhos….
    como que o links das imagens tivesse errada;;;

  16. clares disse:

    Olá Osvaldo, é importante lembrar que o código acima está informando que os arquivos php e as imagens estão no mesmo diretório. Quero dizer, se suas imagens estão por ex: em um diretório separado (que seria o correto) então você deverá passar a urlDiretorio+nomeDaImagem. Por ex:
    src=”thumb.php?img=diretorio/image1.jpg” , faça o download do arquivo e dê uma analisada.
    Um grande abraço.

    Obs: Pessoal atentem-se aos apóstofros/aspas … verifiquem se estão corretos.

  17. Junior Campos disse:

    Clares, esse sistema aceita gif e png também?

  18. clares disse:

    Olá Junior, O exemplo proposto não aceita e você pode ver isso na linha $image = imagecreatefromjpeg($filename), onde o comando está criando um jpeg.. Você pode ver como adaptar o exemplo em:

    http://br.php.net/manual/pt_BR/function.imagecreatefrompng.php

    http://br.php.net/manual/pt_BR/function.imagecreatefromgif.php

    abraços

  19. Tiago disse:

    Olá, bons códigos, muito úteis!
    Tenho uma dúvida, este comando gera uma miniatura da foto (thumbs), mas esta é um arquivo temporário?? ocupará espaço em meu servidor?? onde será salvo??

    Obrigado, parabéns pelo código!

  20. Rafael Clares disse:

    Ola Tiago, não ocupa espaço em disco, o que acontece é que não são criadas imagens pequenas mas isso já comentei no post. a imagem é apenas redimensionada em tempo de execução, tem seu tamanho e qualidade reduzidos ao ser “exibida”. Portanto não se preocupe pois elas não ficam em temp ou algo assim. Abraços

  21. Ola Rafael Clares, a muito tempo estava procurando um tutorial desses. Ficou muito bom. mais uma coisa q me deixou encucado, como faço pra ele redimencionar só o width e heigth fazer automaticamente???

    obrigado

  22. Rafael Clares disse:

    Olá Ewerton, amigo deixa eu ver se entendi a pergunta. Você quer mudar apenas a largura e manter a altura? Se for isso a altura original tem seu valor contido na variável $height. $new_height é a nova que determinamos. Obrigado pelo comentário. Abraços

  23. Thiago disse:

    Olá …

    Eu estou procurando por um exemplo desses usando PHP5 Orientado a Objeto, você programa em OO também?

    Estou precisando aprender como separar as coisas, tenho que fazer um site com apenas uma foto miniatura na pagina inicial, como se eu pudesse definir a foto CAPA, e quando eu clicasse nessa foto abrisse a pagina com todas as fotos, pode até ser usando javascript ou ajax, para não precisar abrir outra pagina, apenas uma janelinha, mas isso deve ser mais complicado.

    Sou iniciante PHP, li 2 livros ja, e estou aprendendo OO agora, e procurando ver exemplos como fazer as coisas.

    Gostaria muito que me desse uma ajudinha se puder..

    Abração! E parabéns pelo tutorial.

  24. Rafael Clares disse:

    Legal Thiago, entendo o que você quer fazer, dê uma olhada nesse sisteminha que fiz.
    http://clareslab.com.br/webimoveis/
    olhe o painel administrativo em
    http://clareslab.com.br/webimoveis/admin
    Esse sistema está desatualizado neste endereço.
    A nova última versão que contém algumas melhorias você pode ver em http://74.86.147.228/~webdemo/
    mas nesse você não terá acesso ao painel admin, porém poderá ver algumas diferenças… de toda forma, entendo um pouco o que você quer… teste esse exemplo de forma que você entenda bem e depois nos falamos denovo para ver uma próxima etapa para você construir seu sistema ok. Abraços e muito obrigado pelo feedback.

  25. Jackson disse:

    Cara!!! Muito obrigado mesmo! Fazia tempo que estava procurando algo pratico e objetivo assim para criar thumbs… O conteúdo do seu blog é muito bom, espero que continue assim. Vlw!

  26. Eliseu sb disse:

    Clares, essa matéria é ótima, a melhor sobre o assunto que encontrei, particularmente falando.

    Obrigado por isso e abraços

  27. Xupisco disse:

    Mto bom esse tutu veio, nao estava funcionando, entao baxei a que vc postou ali e funcionou, e quem quizer que ao clicar na imagem abra o arquivo original e numa nova aba coloque antes de <img src=

    <a href=”caminho para a imagem original” target=_blank>

  28. Raphael Azeredo disse:

    Rafael, queria lhe dar os parabéns pelo excelente trabalho que você vem fazendo no seu blog, com excelentes post de facil entendimento e com contúdo super atrativos, obrigado mesmo, já está nos favoritos

  29. Paulo disse:

    Boa tarde Rafael, interessante seu “sisteminha” muito legal, podemos conversar sobre ele? por favor entre com contato com meu email.
    Feliz Ano Novo a todos !!!!!!!
    Obs. Não tenho corretora nem imobiliária.

  30. Rodrigo Martins disse:

    Vlw cara gostei muito do codigo, estava precisando disso faz tempo.caso eu queira salvar a imagem thumb numa pasta como que faço….vlw

    • Rafael Clares disse:

      Olá Rodrigo, para salvar a imagem altere a penultima linha do arquivo PHP
      imagejpeg($image_p, null, 50);
      troque o null pelo o caminho onde quer salvar a imagem ex:
      imagejpeg($image_p, ‘/home/userx/images/img.jpg’, 50);

  31. Luiz Felipe disse:

    Parabéns pelo post, o blog está excelente e isso ajudará a diminuir a taxa transferência do meu site, exibo miniaturas de programas e estará me ajudando muito este código, já que não encontrei informações sobre gd ou gd2.
    Já testei offline e funcionou nos conformes. Agora vou integrar ao meu site e depois dar upload.
    Obrigado! ;)

  32. Luiz Felipe disse:

    Olá, como eu comentei, o código funciona perfeitamente no que é proposto, mas eu notei que ao invés de diminuir meu bandwith, aumentou, isso ocorre porque toda vez ele visualiza a imagem, ela é baixada novamente. Não teria como o navegador imprimir a imagem uma vez e depois disso, toda vez que ele imprimir a imagem de novo, usar a do cachê, como seu eu usasse um link de imagem normal?
    Mesmo eu tendo uma boa experiência com PHP, eu nunca mexi com imagens e não consegui fazer o que eu descrevo acima. =/
    Ei, falando a respeito do EasyPHP, eu já tive alguns problemas com ele, atualmente eu uso o Vertrigo, julgo melhor e o utilizo.

    Li o comentário que você fez sobre meu site, muito obrigado!

    • Rafael Clares disse:

      Testei apenas o desempenho em relação ao tempo de exibição das imagens, não posso afirmar que o que você descreve realmente ocorre por eu não ter testado, nem sei se o farei. Agora se quiser algo mais completo utilize a class thumbnail que possui uma gama maior de config. e também de efeitos como reflexo, watermark, etc… Quanto ao EasyPHP, nunca tive problema algum e continua sendo uma indicação, instalei uma vez e pronto… apenas o utilizo. Obrigado pelo comentário,

  33. Parrudinho disse:

    Vlw pelo script ajudo muito no meu sistema t+
    abraço

  34. Moisés disse:

    Não funciona comigo, não deve ser problema de código, mas alguém já viu este erro?
    “Warning: getimagesize(foto.JPG) [function.getimagesize]: failed to open stream: No such file or directory in C:\www\site\sistema\carregafoto.php on line 26

  35. Moisés disse:

    O erro inicial, era que estava separando o nome do arquivo assim o código não sabia de onde estava vindo a imagem.
    Solucionado esse erro, veio outro: imagecopyresampled(): supplied argument
    Na verdade a foto sairá do pc do usuário e será salva na pasta thumb no servidor.
    Inicialmente deverá gerar 2 imagens: 800 X 600 e 120 X 100 e salva-las com nomes destintos e depois serem salvos seus nomes no banco de dados.
    Mas para o momento, preciso entender como funciona para carregar ao menos uma simples imagem redimensionada.
    Anotei no código onde retorna o erro.

    Grato;

    $arquivi_nome = $_POST["max_foto"];
    $filename = $arquivo_nome;
    $percent = 0.10;
    header(“Content-type: image/jpeg”);
    list($width, $height) = getimagesize($filename);
    $new_width = 120;
    $new_height = 100;

    $image_p = imagecreatetruecolor($new_width, $new_height);
    $image = imagecreatefromjpeg($filename);

    //nesta linha da o seguinte erro:Warning imagecopyresampled(): supplied argument is not a valid Image resource
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    $pasta_dir = “thumb/”;//diretorio dos arquivos
    $arquivo_nome = $pasta_dir . $arquivo["name"];

    //arquivo_nome não está entrando
    imagejpeg($image_p, $arquivo_nome , 50);
    imagedestroy($image_p);

    • Rafael Clares disse:

      Moisés,

      $arquivi_nome = $_POST['max_foto'] – onde está sendo usado ?
      pq logo na linha abaixo vc diz $filename = $arquivo_nome;
      acredito que $arquivi_nome e $arquivo_nome são difrentes, mas é isso mesmo?

  36. Adilson disse:

    Rafael, show de bole este script.
    Mas no meu para salvar a mini/thumb, não foi nem por reza….rs
    Coloco como vc descreve e nada, deu permissão a pasta tb nada.
    imagejpeg($image_p, ‘mini/teste.jpg/’, 50);

    Abraços.

    Adaysso

    • Rafael Clares disse:

      Pow Adilson, algo deve estar errado mesmo, acabei de testar aqui e gera normalmente a figura.
      Pegando o mesmo script do exemplo alterei a linha para

      imagejpeg($image_p, “thumbs/$filename”, 50);

      Onde thumbs/ é o diretorio onde salvo a miniatura …. e $filename é nome original da imagem.
      Obs: Se vai salvar a miniatura não esqueça que tem que alterar o local de onde serão exibidas as imagens depois.

      De uma olhada aí em relação à diretório e também a forma como está passando o nome da imagem …

      abs

  37. Adilson disse:

    Só gerou uma única vez, sem a extenção da imagem ‘mini’.
    Mas resolvi e funcionou para o que preciso, pois minhas imagens são gravadas no bd e é exibida apenas a primeira ex: thumb.php?img=fotos_anuncios/

    Irei ver o que isso poderá ocasionar com o uso da banda, já que é gerado temporaria as thumbs para cada usuários no site, e se gerasse uma está principal, ficaria bem melhor.
    Conseguir um script que faz isso, irei tentar adaptá-lo.

    Valeu um forte abç.

    Adaysso

  38. Moisés disse:

    Só não está funcionando no Chrome!
    Obs: img- vem do formulário(input type=file)

  39. Olá, Muito obrigado pela ajuda… estava precisando deste sisteminha… agora sem querer abusar, como faço para que as miniaturas reduzam proporcionalmente?

    • Rafael Clares disse:

      Fernando, basta alterar as linhas abaixo:
      $new_width = 120;
      $new_height = 100;

      alterando o valor fixo em pixels por valor percentual, ex:

      $new_width = ($width / 5);
      $new_height = ($height / 5);

      Onde $new_width é a nova largura resultante da largura original ($width) dividido por 5 neste caso, como percebeu
      o valor da nova largura não está fixo (120) e sim baseado na divisão do valor original dividido por 5 ($width/5)
      Quero dizer que você pode explorar estas duas linhas para chegar ao resultado que deseja.

      abraços,

  40. adriano disse:

    caro amigos estou com um problema no meu arquivo thumb.php ou sei la pois estou iniciando nessa de PHP exemplos – http://www.veiculossaopaulo.com.br/thumb.php?70prop2=70&arq=1069407089_CPA-5900_01.jpg
    assim ele so me da a msg que a imagem nao foi encontrada …
    e se eu mudar (por o nome da pasta uploads)
    http://www.veiculossaopaulo.com.br/uploads/1069407089_CPA-5900_01.jpg ai abre a imagem do carro

    aqui esta o thumb.php

    <img src="”>

    POR FAVOR ME AJUDEM POIS COMPREI ESSE SCRIPT DE UM SITE AI http://www.classicarro.noxweb.com.br/
    E O CARA NUM TA NEM AI PRA MIM
    OBRIGADO DESDE JA

  41. Alexandre disse:

    como faz para gerar tipo 5 thumbs por linha?

  42. Gisele disse:

    Eu tenho que montar um sistema semelhante ao seu e queria saber como montar essas buscas com ajax, vc tem algum tutorial?
    Estou montando com dreamweaver.

    • Rafael Clares disse:

      Gisele, não compreendi sua necessidade, você está comentando um post sobre miniaturas de imagens e diz que deseja fazer um sistema semelhante, mas comenta também buscas com ajax, nada que tenha nesse post.
      Talvez consiga me dizer melhor o que precisa. Não tenho tutoriais completos sobre tecnologias, apenas alguns trechos de códigos que julgo úteis em alguns momentos e compartilho no blog;
      Até

  43. Conrado Carvalho disse:

    Oi Rafael, tudo bem? Muito inteligente essa parada, parabéns! Olha só, está funcionando comigo, só estou curioso com uma coisa e talvez vc já tenha vivido algo assim. Aleatoriamente, ao realizar um pesquisa, que retorna um thumb, este desaparece e ao realizar a mesma pesquisa o thumb aparece, uma espécie de intermitência. Já relataram algo parecido? Você teria uma idéia do que seja? Eu suspeite de cache da URL, então o que fiz foi acrescentar na query string um variável com um número rand, só para diminuir esse risco.

    Abraço, Conrado

  44. Marcelo TZK disse:

    Olá, primeiro parabéns, foi o único que consegui fazer funcionar. Só faltou um upload e a inserção automática dó cód. das imagens para visualização dos thumbs (hahah, ñ quero mais nada né!).

    Bom, o que quero anunciar é que criei um método para mudar proporcionalmente os thumbs.

    Substitua tudo isso:
    #setando a largura da miniatura
    $new_width = 120;
    #setando a altura da miniatura
    $new_height = 100;

    Por tudo isso:
    #setando a proporcao da miniatura
    if($height $width) {
    $new_height = (160);
    $new_width = (160*$proporcao);
    }else{
    $new_width = (215);
    $new_height = (215*$proporcao);
    }

    Escolha o tamanho da largura e altura mudando os valores de 160 equivalente a altura e 215 a largura.

    Não sou programador, sou designer, e fiquei mt feliz em conseguir fazer isso sozinho e mais ainda em poder distribuir o cód. Vlw a todos.

  45. Marcelo TZK disse:

    ÚLTIMA ATUALIZAÇÃO DO CÓDIGO PARA GERAÇÃO DE THUMBS PROPORCIONAIS.

    SUBSTITUA:
    #setando a largura da miniatura
    $new_width = 120;
    #setando a altura da miniatura
    $new_height = 100;

    POR:
    #setando as proporcoes desejadas
    $largura = 200;
    $altura = 150;

    #setando a proporcao da miniatura
    if($height > $width) {
    $new_height = $altura;
    $new_width = $width*$altura/$height;
    }else{
    $new_width = $largura;
    $new_height = $height*$largura/$width;
    }

    if($new_width > $largura){
    $new_width = $largura;
    $new_height = $height*$largura/$width;
    }

    if($new_height > $altura){
    $new_height = $altura;
    $new_width = $width*$altura/$height;
    }

  46. Kadu de Souza disse:

    Ja está nos meus favoritos!
    Valew!!

  47. Bruno Perin disse:

    Boa tarde Rafael, queria só tirar uma dúvida quanto ao carregamento da imagem. Por exemplo, tenho uma imagem de 1MB e configurei no thumb para ele exibir com 50% da resolução, então a dúvida é se o script carrega 1MB (da imagem original) para depois converter ou se ele carrega apenas 500kb?

    Também queria saber se você tem algum script ou tutorial de como converter a imagem ao fazer upload.

    Vlw e parabéns pelo script

  48. Diego disse:

    Ola,

    parabens muito bom tutorial, unico que consegui fazer funcionar.

    Tens como fazer com multiplo upload, e gravar o nome da foto no banco.

  49. Edmar disse:

    Cara estou com uma dúvida, estas imagens estão todas num tamanho fixo, mas quando se trata de fotos desproporcionais a tem como o código pegar o tamanho automático das thumb e fixa-las no index automáticamente….?

  50. Leandro disse:

    Amigo, muito interessante torna esse modo em que vc usará a resolução que lhe for ideal. Porém, penso se não seria melhor salvar no servidor varios tamanhos preferenciais para a imagem, envitando assim o uso demasiado dessa biblioteca. Penso que sites como o Flickr mantém além do original e outros tamanhos que são ideais.

    • Rafael Clares disse:

      Opa, concordo com você, mas salvar é uma opção que está ao fim do post.

      Obs: Para salvar a imagem/thumb em um diretório altere a linha
      imagejpeg($image_p, null, 50);
      para
      imagejpeg($image_p, ‘/diretorio/nomeImagem.jpg/’, 50);

      abraços

  51. Leuzinhu disse:

    eae galera, tipo, da um help ae, eu queria q as imagens ficassem proporcionais, mas sem mudar o tamanho, seria uma espece de crop, ia diminuir e depois cortar no centro pra manter o aspecto. é meio dificil, mas se alguem souber agradeço

  52. Alone disse:

    Perfeito!
    Acompanho sempre seu blog, parabens!

  53. Adriano disse:

    Meus thumbs ficaram pretos.
    Alguém sabe o que pode ser?
    Ta tudo certinho mas nao aparecem as imagens das miniaturas.
    Obrigado

  54. Elvis disse:

    Muito Obrigado!
    Seu post de 2008 é o primeiro nas pesquisas do Google sobre php thumb :D

    E até hoje ainda esta a fazer bastante alvoroço entre o pessoal da Web ;)

    Valew’S!

  55. Wendell disse:

    Rafael, muito bom o artigo, muito útil, mas estou tendo um problema, usei ele em uma aplicação que tenho aqui e algumas imagens não são exibidas, existe alguma limitação com relação ao tamanho das originais, pois elas são bem grandes.

    Abraço.

  56. vagner disse:

    Perfeito, direto ao ponto, separado da camada de visão

  57. rachel disse:

    Oie Rafael, tudo bom ?

    Muito bom seu blog.. :) Parabéns. Olha só, não sei se vc vai saber me ajudar, eu já procurei em tudo quanto é canto solução para o meu problema, mas simplesmente não encontro nada.. Bom, o site http://www.envolverde.com.br está usando a biblioteca phothumb a principio, tudo ok, sem problema alguma, mas precisamos gerar uma news com as atualizações do dia, nesse momento começaram os problemas.. Simplesmente o thumb dá pau. Aparece essa mensagem:

    AntiOffsiteLinking( ) – “www.envolverde.com.br” is NOT in
    $this ->config_nooffsitelink_valid_domains (envolverde.com.br)

    O que é mais estranho, é que às vezes funciona, às vezes não funciona.. agora, o que é certo é que quem recebe no hotmail e no ig sempre vê essa mensagem.. Nos demais parece que depende mais do humos do phpthumb do que qualquer coisa..rs..

    Não sei mais para onde correr.. Por isso se souber de algo agradeço muito… Obrigada..

  58. Acson disse:

    Caraca! Brother obrigado por nos passar essa informação! E agradeco mais ainda por ter colocado os arquivos zipados pra down.
    Paaaaaaaaaarabéns, fiquei procurando como fazer isso e vários sites falavam…falavam..mais nao adiantava. E eu precisava era disso mesmo, no “src” da imagem não mostrar o caminho completo tipo “/imagem/foto01.jpg” e sim algo pra camuflar, pois bem, achei :D!
    Mais uma vez parabéns, desde 2008 o artigo e até hoje ajudando muita gente.
    Abraço

  59. Acson disse:

    Ah, gabriel, eu poderia postar seu post no meu blog e colocar teus créditos e o link pra tua página? Obrigado :)

  60. marcelo disse:

    thumbnail é pra reduzir tamanho de um download desnecessário. A pessoa só baixa a foto que quer ver. Se apenas redimensiona a imagem para exibí-la pequenininha, não há razão para esse carnaval todo, atribui largura e altura pra essa *** e pronto. Coisa ignorante.

    • Rafael Clares disse:

      E você é tão entendido que veio parar aqui no sambódromo né?
      Outra coisa ow samurai, a linha:
      imagejpeg($image_p, ‘/diretorio/nomeImagem.jpg/’, 50);
      o último parâmetro recebe justamente o número em relação à qualidade da imagem 0 a 100 e reduz o tamanho do download.
      Falou tiozão, de toda forma, obrigado pelo comentário!

  61. Totti disse:

    E como eu faço se não tiver uma imagem cadastrada, colocar uma padrão ? tem como ?

  62. Rodrigo Poli disse:

    Boa noite,

    Você ja fez testes com imagens grandes tipo 3072×2304, ao tentar usar aqui retornou o seguinte erro: A imagem contem erros e nao pode ser exibida.

  63. Felipe disse:

    Cara… não é mt aconselhavel esse script ai pois se for uma pagina onde tem muitor produtos, por exemplo, vai demorar pra carregar pq ele carrega a imagem por completo apenas mudando as dimenções

  64. Tiago disse:

    Cara tava procurando por isso! Mtu bom vlw… Tá nos favoritos.

  65. daniel disse:

    De fato deu certo, tem como bloquear essa função para usuários do navegador Chrome? Já que nesse navegador as miniaturas aparecem com alta resolução ao contrário do Firefox e ie. E dizendo que essa função REDUZIU a resolução das miniaturas para o Chrome.

    Seguindo a lógica mais vale uma miniatura + – em 3 navegadores, do que 1 ótima e 2 péssimas.
    Grato.

    • Rafael Clares disse:

      Daniel, até dá, utilizando jscript e userAgent… mas não é o foco do post.
      Dê uma lida sobre User Agent do Jscript para quando for Chrome o jscript tomar uma ação de “parar” a aplicação ou redirecionar para outra tela …

  66. Miojex disse:

    Obrigado manolo gostei (:

  67. Excelente função. Obrigado por compartilha-la.

  68. Gabriel Coelho disse:

    As imagens soltas dentro de um diretório junto ao arquivo thumb funciona perfeitamente
    Mas quando coloco as imagens dentro de um diretório, por exemplo uploads, nem debaixo de reza ele pega a imagem por $_GET, tem como me dar uma força?

    Grato

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s