A Python Imaging Library (expansão do PIL) é o pacote de processamento de imagens de fato para a linguagem Python. Ele incorpora ferramentas leves de processamento de imagem que auxiliam na edição, criação e salvamento de imagens. O suporte para Python Imaging Library foi descontinuado em 2011, mas um projeto chamado pillow bifurcou o projeto PIL original e adicionou suporte Python3.x a ele. O pillow foi anunciado como um substituto do PIL para uso futuro. O Pillow oferece suporte a um grande número de formatos de arquivo de imagem, incluindo BMP, PNG, JPEG e TIFF. A biblioteca incentiva a adição de suporte para formatos mais novos na biblioteca, criando novos decodificadores de arquivo.

Este módulo não é pré-carregado com Python. Portanto, para instalá-lo, execute o seguinte comando na linha de comando:

pip instalar pillow

Observação: várias distribuições do Linux tendem a ter Python e PIL pré-instalados.

Começando com o pillow

  1. Abrindo uma imagem usando open(): A classe PIL.Image.Image representa o objeto de imagem. Essa classe fornece o método open() que é usado para abrir a imagem.

    Exemplo: vamos supor que a imagem seja:



    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    img = Image.open(r"test.png")   
    chevron_right
    
    
    filter_none
    
    

    Nota: A localização da imagem deve ser relativa apenas se a imagem estiver no mesmo diretório do programa Python, caso contrário, o caminho absoluto (completo) da imagem deve ser fornecido.

  2. Exibindo a imagem usando show(): Este método é usado para exibir a imagem. Para exibir a imagem, o Pillow primeiro converte a imagem em um .pngformato (no sistema operacional Windows) e a armazena em um buffer temporário para depois exibi-la. Portanto, devido à conversão do formato da imagem em .pngalgumas propriedades do formato do arquivo de imagem original, pode ser perdido (como animação). Portanto, é aconselhável usar esse método apenas para fins de teste.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    img = Image.open(r"test.png")
    img.show()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    python-pil-1

  3. Obtenção de informações sobre a imagem aberta

    A) Obtendo o modo (modo de cor) da imagem: O atributo de modo da imagem informa o tipo e a profundidade do pixel na imagem. Um pixel de 1 bit tem um intervalo de 0-1 e um pixel de 8 bits tem um intervalo de 0-255. Existem diferentes modos fornecidos por este módulo. Poucos deles são:

    Modo Descrição
    1 Pixels de 1 bit, preto e branco
    eu Pixels de 8 bits, escala de cinza
    P Pixels de 8 bits, mapeados para qualquer outro modo usando uma paleta de cores
    RGB 3 × pixels de 8 bits, cor verdadeira
    RGBA Pixels de 4 × 8 bits, true color com máscara de transparência

    Exemplo:

    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    img = Image.open(r"test.png")
    print(img.mode)
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    RGBA

    Note:Consulte a documentação para saber sobre os modos .

    B) Obtendo o tamanho da imagem: Este atributo fornece o tamanho da imagem. Ele retorna uma tupla que contém largura e altura.



    Exemplo:

    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    img = Image.open(r"test.png")
    print(img.size)
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    (180, 263)

    C) Obtendo o formato da imagem: Este método retorna o formato do arquivo de imagem.

    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    img = Image.open(r"test.png")
    print(img.format)
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    PNG
  4. Girando uma imagem usando rotate(): depois de girar a imagem, as seções da imagem sem valores de pixel são preenchidas com preto (para imagens não alfa) e com pixels completamente transparentes (para imagens que suportam transparência)

    Exemplo:

    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    angle = 40
    img = Image.open(r"test.png")
    r_img = img.rotate(angle)
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    python-pil-2

  5. Redimensionar uma imagem usando resize(): interpolação ocorre durante o processo de redimensionamento, devido ao qual a qualidade da imagem muda se ela está sendo redimensionada (redimensionada para uma dimensão mais alta que o original) ou reduzida (redimensionada para uma imagem inferior à original). Portanto resize() deve ser usado com cautela e ao fornecer um valor adequado para o argumento de reamostragem.

    Exemplo:

    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    size = (40, 40)
    img = Image.open(r"test.png")
    r_img = img.resize(size)
      
    r_img.show()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    python-pil-3

  6. Salvando uma imagem usando save(): Ao usar o método save() Destination_path deve ter o nome do arquivo e a extensão da imagem também. A extensão pode ser omitida em Destination_path se a extensão for especificada no argumento de formato.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from PIL import Image
      
      
    size = (40, 40)
    img = Image.open(r"test.png")
    r_img = img.resize(size, resample = Image.BILINEAR)
      
    r_img.save("resized_test.png"
      
    img = Image.open(r"resized_test.png")
    print(img.size)
    chevron_right
    
    
    filter_none
    
    

    Resultado:

    (40, 40)