Thumbor

Thumbor
DesenvolvedorGlobo.com
Lançamento inicial6 de junho de 2013 (12 anos)
Lançamento estável
7.7.7 / 15 de maio de 2025
Repositóriogithub.com/thumbor
Escrito emPython
Sistema
operacional
Multiplataforma
PlataformaMultiplataforma
TipoProcessamento de imagens
LicençaMIT
Websitewww.thumbor.org

Thumbor é uma aplicação de código aberto para redimensionamento e manipulação de imagens em tempo real. Desenvolvida originalmente pela Globo.com, a ferramenta é escrita em Python e permite o corte inteligente de imagens com base em reconhecimento facial e outros algoritmos de detecção de objetos.

Características

  • Redimensionamento dinâmico: Gera imagens em diferentes tamanhos sob demanda.
  • Corte inteligente (smart cropping): Utiliza algoritmos de reconhecimento facial e detecção de pontos de interesse para cortar imagens automaticamente de maneira mais relevante.
  • Suporte a filtros: Permite aplicar efeitos como brilho, contraste, desfoque, entre outros.
  • Armazenamento e cache: Pode integrar-se a diversos backends de armazenamento (como Amazon S3, Google Cloud Storage, Redis, etc.) e sistemas de cache.
  • Segurança: Suporta assinaturas criptografadas para evitar manipulação não autorizada de URLs.

Utilização

O Thumbor é utilizado por empresas que necessitam de manipulação de imagens em larga escala e em tempo real, especialmente em portais de notícias[1][2], e-commerces[3][4][5][6] e aplicações web que demandam alta performance na entrega de mídia visual[7].

A Fundação Wikimedia, mantenedora da Wikipédia e de outros projetos, utiliza o Thumbor como parte de sua infraestrutura de processamento de imagens[8][9][10]. Desde junho de 2017, todo o tráfego de miniaturas de imagens para wikis públicas e beta passou a ser servido pelo Thumbor. Em fevereiro de 2018, esse suporte foi estendido às wikis privadas[11], e em abril do mesmo ano, o sistema anterior de geração de miniaturas baseado no MediaWiki foi desativado. Em abril de 2023, o Thumbor passou a servir o tráfego de produção via Kubernetes[12].

Uso pela Amazon

A Amazon utiliza o Thumbor como parte de sua infraestrutura de processamento de imagens. A solução Serverless Image Handler, integrada ao Amazon CloudFront, permite redimensionar, converter e aplicar filtros de imagem em tempo real usando o Thumbor em conjunto com AWS Lambda. A documentação oficial da Amazon lista filtros como blur, grayscale, equalize, sharpen, smart crop, entre outros, que podem ser utilizados via URL[13].

Funcionamento do Thumbor

Arquitetura Baseada em Servidor

O Thumbor opera como um serviço web, processando imagens sob demanda. Ele recebe requisições HTTP com parâmetros como tamanho da imagem, qualidade, recortes e outros ajustes. O servidor então manipula a imagem conforme os parâmetros recebidos e serve a imagem modificada ao cliente.

URL como Interface

A principal interface de interação com o Thumbor é por meio de URLs. A URL pode incluir diversos parâmetros para manipulação da imagem, como redimensionamento (largura, altura)[14], filtros[15] (como blur, rotate), recorte (crop)[16], entre outros. Esses parâmetros são passados na URL, e o Thumbor processa a imagem conforme os parâmetros recebidos.

Exemplo de URL: http://thumbor.exemplo.com/unsafe/300x200/smart/https://exemplo.com/imagem.jpg

Neste exemplo:

  • 300x200: define as dimensões finais da imagem.
  • smart: aplica um algoritmo de corte inteligente que tenta manter o foco no conteúdo mais relevante da imagem.
  • https://exemplo.com/imagem.jpg: é a URL da imagem original (fonte), que será baixada e processada pelo Thumbor.

O URL final após o domínio unsafe refere-se a um método de geração de imagem sem autenticação adicional, o que pode ser configurado.

Código-fonte

O projeto é mantido como software livre sob a licença MIT, com o código-fonte disponível no repositório oficial no GitHub[17].

Ver também

Referências

  1. «Thumbor: Escalabilidade em processamento de imagens com reconhecimento facial para 20 milhões de brasileiros». InfoQ. Consultado em 20 de maio de 2025 
  2. «feat: Support AVIF format encoding by fdintino · Pull Request #1476 · thumbor/thumbor». GitHub (em inglês). Consultado em 20 de maio de 2025 
  3. Boeira, Marcelo (10 de outubro de 2018). «The Fast and the Payloadless». Medium (em inglês). Consultado em 20 de maio de 2025 
  4. Square Engineering (20 de janeiro de 2014). «Dynamic Images with Thumbor». Consultado em 20 de maio de 2025 
  5. «Experimental exports - Hooks and Components». developers.vtex.com (em inglês). Consultado em 20 de maio de 2025 
  6. «How Yipit Scales Thumbnailing with Thumbor and Cloudfront - Yipit Django Blog». web.archive.org. 15 de fevereiro de 2024. Consultado em 20 de maio de 2025 
  7. «Usar CDNs de imagens para otimizar imagens | Articles». web.dev. Consultado em 20 de maio de 2025 
  8. «The journey to Thumbor, part 1: rationale – WM:TECHBLOG» 🔗 (em inglês). 20 de junho de 2017. Consultado em 4 de maio de 2025 
  9. «The journey to Thumbor, part 2: thumbnailing architecture – WM:TECHBLOG» 🔗 (em inglês). 17 de novembro de 2017. Consultado em 4 de maio de 2025 
  10. «The journey to Thumbor, part 3: development and deployment strategy – WM:TECHBLOG» 🔗 (em inglês). 20 de novembro de 2017. Consultado em 4 de maio de 2025 
  11. Wikimedia Foundation (22 de fevereiro de 2018). «Thumbor support for private wikis deployed». Wikimedia Tech Blog. Consultado em 4 de maio de 2025 
  12. Wikimedia Foundation (abril de 2023). «Thumbor». Wikimedia Tech Blog. Consultado em 4 de maio de 2025 
  13. Amazon Web Services. «Use supported Thumbor filters». AWS Documentation. Consultado em 4 de maio de 2025 
  14. «Crop and Resize Algorithms — Thumbor 7.7.7 documentation». thumbor.readthedocs.io. Consultado em 20 de maio de 2025 
  15. «Filters — Thumbor 7.7.7 documentation». thumbor.readthedocs.io. Consultado em 20 de maio de 2025 
  16. «Crop and Resize Algorithms — Thumbor 7.7.7 documentation». thumbor.readthedocs.io. Consultado em 20 de maio de 2025 
  17. Thumbor contributors. «thumbor/thumbor». GitHub. Consultado em 4 de maio de 2025