Travesseiro Python - Trabalhando com Imagens
Este capítulo elabora tópicos, incluindo como ler e salvar uma imagem no Pillow.
Lendo uma imagem
Ler e escrever imagens usando a biblioteca de travesseiros é muito simples, com a ajuda de PIL.Image module function.
Sintaxe
Image.open(fp, mode=’r’)
Onde
fp- Um nome de arquivo (string), objeto pathlib.Path ou um objeto de arquivo. O objeto de arquivo deve implementar os métodos read (), seek () e tell () e ser aberto no modo binário.
mode - É um argumento opcional, se fornecido, deve ser 'r'.
Return value - Um objeto de imagem.
Error - Se o arquivo não puder ser encontrado ou a imagem não puder ser aberta e identificada.
Exemplo
A seguir está um exemplo muito simples, onde vamos abrir uma imagem de qualquer formato (que estamos usando.jpg), exiba-o em uma janela e salve-o (local padrão) com outro formato de arquivo (.png)
from PIL import Image
image = Image.open('beach1.jpg')
image.show()
image.save('beach1.bmp')
image1 = Image.open('beach1.bmp')
image1.show()
No exemplo acima, importamos o módulo de imagem da biblioteca PIL e, em seguida, chamamos o Image.open()função para ler uma imagem do disco, que retorna um tipo de dados de objeto de imagem. Ele determinará automaticamente o tipo de arquivo observando o conteúdo do arquivo. Para ler, oopen() função aceita um filename(string), uma path object ou um image(file) objeto.
Portanto, ao usar a função open (), estamos realmente lendo a imagem. Image.open () irá ler a imagem e obter todas as informações relevantes da imagem.
Resultado
Se você salvar o programa acima como Example.py e executar, ele exibirá as imagens originais (.jpg) e as imagens salvas novamente (.bmp) usando o utilitário de exibição PNG padrão, como segue -
Actual image
Resaved image (.bmp)
Salvar uma imagem
A função save () grava uma imagem em um arquivo. Como para a função de leitura (open ()), a função save () aceita um nome de arquivo, um objeto de caminho ou um objeto de arquivo que foi aberto para gravação.
Sintaxe
Image.save(fp, format=None, **params)
Onde,
fp - Um nome de arquivo (string), objeto pathlib.Path ou objeto de arquivo.
format- Substituição de formato opcional. Se omitido, o formato a ser usado é determinado pela extensão do nome do arquivo. Se um objeto de arquivo foi usado em vez de um nome de arquivo, este parâmetro deve sempre ser usado.
options - Parâmetros extras para o gravador de imagens.
Return value - nenhum
KeyError - Se o formato de saída não puder ser determinado a partir do nome do arquivo, use a opção de formato para resolver isso.
IOError - Se o arquivo não pôde ser gravado, o arquivo pode ter sido criado e pode conter dados parciais.
Resumindo, a sintaxe acima salvará a imagem com o nome de arquivo fornecido. Se nenhum formato for especificado, ele será baseado na extensão do nome de arquivo atual. Para fornecer instruções adicionais ao redator, usamos opções de palavras-chave.
image.save('beach1.bmp')
No exemplo acima, ele salva o arquivo com base na extensão do arquivo para determinar o tipo de imagem, por exemplo - o acima irá criar um arquivo bmp em nosso diretório de trabalho atual.
Você também pode especificar explicitamente o tipo de arquivo como um segundo parâmetro -
image.save('beach1.gif', 'GIF')