Como construir um conversor de tipo de imagem em seis linhas de Python

Uma das vantagens de ser um programador é a capacidade de construir ferramentas utilitárias para melhorar sua vida. Ao contrário de um não programador, você provavelmente não gasta horas vasculhando várias páginas de resultados de pesquisa do Google para encontrar uma ferramenta que, em primeiro lugar, deveria melhorar sua produtividade (a ironia vence ). Isso provavelmente faz você se sentir mais poderoso conhecendo uma linguagem de programação - especialmente se essa linguagem de programação for tão versátil e incrível quanto o Python.
Um dos pontos do The Zen of Python diz:
Simples é melhor que complexo.Com essa filosofia em vigor, muito do desenvolvimento de ferramentas de nicho usando Python pode ser feito de forma tão sucinta que me faz pensar se vale a pena chamá-la de ferramenta. Às vezes, a palavra script
seria mais precisa. De qualquer forma, estamos nos preparando aqui para construir um script
que converta imagens de um formato de arquivo (tipo de imagem) para outro - em apenas 6 linhas de código Python.
Neste tutorial, vamos construir um conversor de tipo de imagem que converte uma imagem PNG em uma imagem JPG. Antes que suas células de massa cinzenta se precipitem para julgar se estou louco para construir essa ferramenta, deixe-me dizer que isso não é apenas para uma imagem - mas para todas as imagens dentro de uma pasta. Isso definitivamente exigiria mais esforço manual para fazer sem codificação (eu sei que você pode sentir o cheiro bash
).
Pacote Python
Vamos usar o pacote Python PIL
(que significa Python Image Library) para esse propósito. O original PIL
não recebeu nenhuma atualização para a última versão do Python, então algumas boas almas criaram um fork amigável chamado Pillow
que suporta até> Python 3.0.
Instale-o usando pip3 install Pillow
.
Roteiro Inicial
Existem duas seções principais neste código. A primeira seção é onde importamos os pacotes necessários e a segunda seção é onde a operação real acontece. A operação real pode ser subdividida da seguinte forma:
- Repita todos os arquivos com a extensão fornecida - no nosso caso
.png
- e repita o seguinte: - Abra o arquivo de imagem (como um arquivo de imagem)
- Converta o arquivo de imagem para um formato diferente (
RGB
) - Finalmente salve o arquivo - com a nova extensão
.jpg
Linhas 1 e 2:
from PIL import Image # Python Image Library - Image Processing
import glob
Esta seção importa apenas os pacotes necessários. PIL
para processamento de imagem e glob
para iteração por meio de arquivos de uma determinada pasta no sistema operacional.
Linhas 3-6:
# based on SO Answer: //stackoverflow.com/a/43258974/5086335
for file in glob.glob("*.png"):
im = Image.open(file)
rgb_im = im.convert('RGB')
rgb_im.save(file.replace("png", "jpg"), quality=95)
FIN
Então esse é o fim da nossa ferramenta! Você pode salvar essas 6 linhas como um .py
arquivo e, em seguida, chamá-las em seu computador, onde você tem imagens para converter.
Desenvolvimento adicional
Se você está planejando melhorar ainda mais este script, pode converter todo o script em uma ferramenta de interface de linha de comando - todos esses detalhes como File Format
e Folder Path
podem ser fornecidos como argumentos, estendendo ainda mais seu poder.
Referências
- O código completo usado aqui está disponível no meu github
- Zen de Python
- Travesseiro