Python: pillow (um garfo de PIL)
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
- 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_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
img
=
Image.
open
(r
"test.png"
)
chevron_rightfilter_noneNota: 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.
- 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
.png
formato (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.png
algumas 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_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
img
=
Image.
open
(r
"test.png"
)
img.show()
chevron_rightfilter_noneResultado:
- 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_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
img
=
Image.
open
(r
"test.png"
)
print
(img.mode)
chevron_rightfilter_noneResultado:
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_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
img
=
Image.
open
(r
"test.png"
)
print
(img.size)
chevron_rightfilter_noneResultado:
(180, 263)
C) Obtendo o formato da imagem: Este método retorna o formato do arquivo de imagem.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
img
=
Image.
open
(r
"test.png"
)
print
(img.
format
)
chevron_rightfilter_noneResultado:
PNG
- 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_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
angle
=
40
img
=
Image.
open
(r
"test.png"
)
r_img
=
img.rotate(angle)
chevron_rightfilter_noneResultado:
- 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_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
PIL
import
Image
size
=
(
40
,
40
)
img
=
Image.
open
(r
"test.png"
)
r_img
=
img.resize(size)
r_img.show()
chevron_rightfilter_noneResultado:
- 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
fecharplay_arrow
link
brilho_4
códigofrom
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_rightfilter_noneResultado:
(40, 40)
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva