Pillow – processamento de imagens em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Fundamentos da biblioteca Pillow em Python

Trabalhar com imagens é essencial no desenvolvimento de software moderno. Da criação de aplicações web com geração dinâmica de conteúdo ao desenvolvimento de sistemas de visão computacional e aprendizado de máquina — todos precisam de ferramentas para processar dados gráficos. A biblioteca Pillow (Python Imaging Library) é uma solução poderosa e versátil para manipulação de imagens no ecossistema Python.

Pillow é um fork ativamente mantido da biblioteca PIL original, criada em 1995 por Fredrik Lundh. Após o fim do desenvolvimento da PIL em 2011, Alex Clark e a comunidade de desenvolvedores criaram o Pillow, garantindo compatibilidade com a API original e adicionando muitos novos recursos e melhorias.

As principais vantagens do Pillow incluem facilidade de uso, amplo suporte a formatos gráficos, um rico conjunto de ferramentas para edição e análise de imagens, além de suporte ativo da comunidade. A biblioteca é amplamente usada em desenvolvimento web, computação científica, aprendizado de máquina e automação de processos gráficos.

Sobre a biblioteca Pillow

História e desenvolvimento

Pillow foi criada como um fork da PIL (Python Imaging Library) para garantir compatibilidade com Python 3 e resolver problemas de instalação da biblioteca original. O nome "Pillow" vem da palavra inglesa para "travesseiro" e é um trocadilho com a sigla PIL.

A biblioteca é ativamente desenvolvida desde 2010 e mantida por uma grande comunidade de desenvolvedores. Atualizações regulares incluem suporte a novos formatos de imagem, melhorias de desempenho, correções de segurança e expansão de funcionalidades.

Arquitetura e princípios de funcionamento

Pillow é construída com base nos princípios da programação orientada a objetos. O elemento central é a classe Image, que representa uma imagem na memória. Todas as operações com imagens são realizadas através de métodos desta classe ou de módulos relacionados.

A biblioteca suporta lazy evaluation (avaliação preguiçosa), o que significa que muitas operações não são executadas imediatamente, mas adiadas até o momento de salvar ou de uma chamada explícita. Isso permite otimizar cadeias de transformações e melhora o desempenho.

Principais módulos e componentes

Pillow consiste em vários módulos-chave:

  • Image — módulo principal para trabalhar com imagens
  • ImageDraw — módulo para desenhar primitivas e texto
  • ImageFilter — conjunto de filtros predefinidos
  • ImageEnhance — ferramentas para melhorar a qualidade da imagem
  • ImageFont — trabalho com fontes
  • ImageColor — utilitários para trabalhar com cores
  • ImageOps — operações adicionais com imagens

Instalação e configuração

Instalação padrão

pip install pillow

Instalação com dependências adicionais

Para funcionalidades avançadas, você pode instalar bibliotecas extras:

pip install pillow[imaging]  # Codecs adicionais
pip install pillow[extra]    # Todas as dependências extras

Verificando a instalação

from PIL import Image
import PIL
print(PIL.__version__)
print(PIL.features.check_feature('webp'))  # Verifica suporte a WebP

Operações básicas com imagens

Abrindo e obtendo informações básicas da imagem

from PIL import Image

# Abrindo uma imagem
img = Image.open("exemplo.jpg")

# Obtendo informações básicas
print(f"Formato: {img.format}")
print(f"Tamanho: {img.size}")
print(f"Modo de cor: {i                    

Recommendations