Thumbnails com tamanho fixo sem estragar a imagem PHP OO
Fiz uma classe simples para gerar thumbnails de imagens gif, jpg, png, wbmp e bmp.
É necessário que a biblioteca GD2 e a EXIF estejam habilitadas para que o script funcione corretamente. Apartir da versão 1.0.8 também é necessário a biblioteca CURL.
Com 4 a 7 linhas de código você será capaz de gerar um thumbnail perfeito sem perder ou esticar a imagem, apenas utilizando esta classe.
A mesma pode ser utilizada quando se faz uploads de imagens facilitando a vida na hora de gerar galeria de fotos.
Fiz comentários na classe para que vocês possam entender facilmente o que se passa na mesma e também alterar se for o caso.
Quanto ao bmp devido ao PHP não ter função nativa que trate eu pesquisei algumas funções no google e fóruns e criei uma classe adicional para que fosse possível trabalhar com bmp também.
Esta classe eu mantive os comentários de cada desenvolvedor.
Fiz apenas alguns ajustes para utilizar em conjunto com a minha classe.
Crédito das funções BMP ao qual utilizei para fazer minha classe:
http://excellent-coder.blogspot.com
http://100net.mirrors.phpclasses.org/browse/author/343232.html
A partir da versão 1.0.2 já é possível utilizar o script também com
imagens BMP.
A partir da versão 1.0.5 já tem novas formas de dimensionar, transparência em gif e png a imagem, centraliza imagem em thumbs de formato irregular e requer que sejam setados alguns parâmetros a mais.
A versão 1.0.6 também centraliza imagem de acordo a largura ou altura definida em thumbs onde não se sabe ou X ou Y que será utilizado.
A versão 1.0.8 também possibilita jogar as thumbs em outra pasta, fazer
thumbs de uma URL qualquer de imagem e fazer com que uma página php vire
uma imagem para que possa ser exibida em um <img src="" /> por exemplo.
A versão 1.1.0 também possibilita fazer crop das fotos via php e crop automático centralizando o recorte e mantendo a proporção da imagem.
Espero que esta classe seja útil a todos.
É necessário que a biblioteca GD2 e a EXIF estejam habilitadas para que o script funcione corretamente. Apartir da versão 1.0.8 também é necessário a biblioteca CURL.
Com 4 a 7 linhas de código você será capaz de gerar um thumbnail perfeito sem perder ou esticar a imagem, apenas utilizando esta classe.
A mesma pode ser utilizada quando se faz uploads de imagens facilitando a vida na hora de gerar galeria de fotos.
Fiz comentários na classe para que vocês possam entender facilmente o que se passa na mesma e também alterar se for o caso.
Quanto ao bmp devido ao PHP não ter função nativa que trate eu pesquisei algumas funções no google e fóruns e criei uma classe adicional para que fosse possível trabalhar com bmp também.
Esta classe eu mantive os comentários de cada desenvolvedor.
Fiz apenas alguns ajustes para utilizar em conjunto com a minha classe.
Crédito das funções BMP ao qual utilizei para fazer minha classe:
http://excellent-coder.blogspot.com
http://100net.mirrors.phpclasses.org/browse/author/343232.html
A partir da versão 1.0.2 já é possível utilizar o script também com
imagens BMP.
A partir da versão 1.0.5 já tem novas formas de dimensionar, transparência em gif e png a imagem, centraliza imagem em thumbs de formato irregular e requer que sejam setados alguns parâmetros a mais.
A versão 1.0.6 também centraliza imagem de acordo a largura ou altura definida em thumbs onde não se sabe ou X ou Y que será utilizado.
A versão 1.0.8 também possibilita jogar as thumbs em outra pasta, fazer
thumbs de uma URL qualquer de imagem e fazer com que uma página php vire
uma imagem para que possa ser exibida em um <img src="" /> por exemplo.
A versão 1.1.0 também possibilita fazer crop das fotos via php e crop automático centralizando o recorte e mantendo a proporção da imagem.
Espero que esta classe seja útil a todos.
Data | Autor | Changelog | Download |
---|---|---|---|
29/10/2010 3:47pm | Ibrahim S. M. Brumate | Versão 1.0.0 | Versão 1.0.0 |
03/11/2010 9:13am | Ibrahim S. M. Brumate | Versão 1.0.1 | Versão 1.0.1 |
04/11/2010 11:41am | Ibrahim S. M. Brumate | Versão 1.0.2 | Versão 1.0.2 |
20/01/2012 3:08pm | Ibrahim S. M. Brumate | Versão 1.0.3 | Versão 1.0.3 |
05/03/2012 2:51pm | Ibrahim S. M. Brumate | Versão 1.0.4 | Versão 1.0.4 |
23/03/2012 1:18pm | Ibrahim S. M. Brumate | Versão 1.0.5 | Versão 1.0.5 |
01/11/2012 9:14am | Ibrahim S. M. Brumate | Versão 1.0.6 | Versão 1.0.6 |
09/01/2014 10:32am | Ibrahim S. M. Brumate | Versão 1.0.7 | Versão 1.0.7 |
24/03/2014 10:41am | Ibrahim S. M. Brumate | Versão 1.0.8 | Versão 1.0.8 |
12/01/2015 11:54am | Ibrahim S. M. Brumate | Versão 1.0.9 | Versão 1.0.9 |
12/01/2015 12:56pm | Ibrahim S. M. Brumate | Versão 1.1.0 | Versão 1.1.0 |
11/06/2015 2:42pm | Ibrahim S. M. Brumate | Versão 1.1.1 | Versão 1.1.1 |
Obrigado. Fico feliz em poder ser útil facilitando o uso de thumbnails no PHP. Abraços.
21/05/2015 11:37am
(~9 anos atrás)
A classe é inteligente. Caso você precise criar mais de uma thumbnail (de diferentes tamanhos) de uma mesma imagem ele não vai substituir a thumbnail anterior. Se ainda estiver tendo problemas com a instalação do cURL de uma olhada no google em tutoriais que explicam como fazer isso ou utilize algum facilitador como XAMPP, Wamp, Vertrigo e etc.
21/05/2015 11:33am
(~9 anos atrás)
Mas independentemente disso, meus parabéns, principalmente quanto à parte do redimensionamento de imagens .bmp.
21/05/2015 10:54am
(~9 anos atrás)
Vamos lá, no Windows deve se copiar as biliotecas libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll para o diretório C:\Windows\System32 e para o diretório Apache24\bin e reiniciar o Apache, lógico.
Estas bibliotecas estão no diretório do PHP. Estou usando o PHP 5.6.2.
Só uma dúvida (eu ainda não me detive a olhar o código), porque cria duas cópias da imagem redimensionada (nova_imagem.jpg ou bmp e nova_1_imagem.jpg ou bmp)?
Estas bibliotecas estão no diretório do PHP. Estou usando o PHP 5.6.2.
Só uma dúvida (eu ainda não me detive a olhar o código), porque cria duas cópias da imagem redimensionada (nova_imagem.jpg ou bmp e nova_1_imagem.jpg ou bmp)?
21/05/2015 10:27am
(~9 anos atrás)
Julio, pelo erro gerado, a biblioteca CURL não foi habilitada corretamente.
A classe foi testada antes de ser publicada e funciona normalmente se o CURL estiver habilitado corretamente. De uma olhada no google em tutoriais que explicam como fazer isso ou utilize algum facilitador como XAMPP, Wamp, Vertrigo e etc.
A classe foi testada antes de ser publicada e funciona normalmente se o CURL estiver habilitado corretamente. De uma olhada no google em tutoriais que explicam como fazer isso ou utilize algum facilitador como XAMPP, Wamp, Vertrigo e etc.
21/05/2015 9:32am
(~9 anos atrás)
Ao executar o arquivo teste_outra_pasta.php gera o mesmo erro anterior.
E ao executar o arquivo teste_curl.php gera o erro "Fatal error: Call to undefined function curl_init() in C:\apache2\www\htdocs\projeto\thumbClass.php on line 171".
As imagens estão no lugar certo e os caminhos estão corretos também.
E ao executar o arquivo teste_curl.php gera o erro "Fatal error: Call to undefined function curl_init() in C:\apache2\www\htdocs\projeto\thumbClass.php on line 171".
As imagens estão no lugar certo e os caminhos estão corretos também.
21/05/2015 9:14am
(~9 anos atrás)
Ao executar o arquivo teste.php gera o erro " [0] => A Biblioteca cURL deve estar ativada. Habilite a php_curl.dll no php.ini", porém a biblioteca está habilitada no php.ini e as dlls ssleay32.dll e libeay32.dll estão presentes.
21/05/2015 9:01am
(~9 anos atrás)
sempre usei imagecopyresized mais vou textar o resampled pra ver oq da =]
http://www.thalleslazaro.net
http://www.thalleslazaro.net
08/11/2010 3:06pm
(~14 anos atrás)
Grato pela dica amigo Takiguti.
Realmente a função imagecopyresampled é melhor.
Optei por substituir uma vez que as duas tem a
mesma utilidade. Caso alguém por algum motivo
prefira a resized basta baixar a primeira versão.
Abraços.
Realmente a função imagecopyresampled é melhor.
Optei por substituir uma vez que as duas tem a
mesma utilidade. Caso alguém por algum motivo
prefira a resized basta baixar a primeira versão.
Abraços.
03/11/2010 9:16am
(~14 anos atrás)
A php_curl.dll está dentro da pasta de extensões (ext) do PHP, as outras ficam no diretório principal.
Parabéns de novo e abraços.