Bem vindo de volta.
Como foi difícil?
Espero que você não me odeie por tornar as coisas um pouco difíceis, mas vai ser uma coisa boa.
E lembre-se, se você não entendeu imediatamente, isso não é grande coisa.
É assim que nós aprendemos.
Então, vamos tornar isso um pouco maior.
Ai está.
E comece com nosso primeiro passo, que é pegar esses dois argumentos que teremos que usar.
Então, como podemos fazer isso?
Bem, a primeira coisa que vamos fazer é, digamos caminho, que é o primeiro caminho de nossas imagens.
Ou vamos apenas chamá-lo.
Image Falder.
E essa pasta de imagens vai usar sis dot org v, que são os argumentos e lembre-se, o Arc V é esse é
o primeiro, que é o arquivo Python.
Este é o segundo e este é o terceiro.
Da forma como a programação funciona, começamos com zero, depois um, depois dois.
Então, vamos dizer que nosso V está aqui?
E então para o segundo, que é a saída.
Pasta, vai dizer ponto org v.
Para isso, sempre gosto de testar o que fizemos porque queremos ter certeza de que nossas suposições estão
corretas, então vamos apenas imprimir a imagem.
Pasta e pasta de saída.
E vamos apenas executar este arquivo.
Tudo bem, olhe para isso, temos Polk IDEX e New, parece que está funcionando muito bem.
Então fizemos a primeira pergunta, e a segunda?
O segundo é verificar se esta nova pasta existe.
Caso contrário, precisamos criá-lo para que possamos usá-lo aqui para colocar as imagens.
Então, novamente, isso soa como uma declaração if.
Então vou dizer se.
Em seguida, verifique se a pasta existe.
Então, a maneira como podemos fazer isso é usando o módulo OS.
Agora também existe o módulo de laboratório PATH que ele pode usar.
Depende totalmente de você.
Agora com o O. C. , o que podemos fazer é dizer, OK, Ponto, o ponto Pathe existe.
E isso só vai verificar, ei, isso existe, então direi a pasta de saída, isso
existe?
Então, vamos ver qual é o resultado disso.
Portanto, antes mesmo de fazer a instrução if, novamente, gosto de testar meu código.
Então vou dizer.
Se o caminho do sistema operacional existir.
Ou desculpe, em vez de se quisermos imprimir, vamos executar isso.
E ficamos falsos.
Por que isso é falso?
Porque ele não existe, para que nossa instrução IF funcione, nós realmente temos que fazer isso.
Temos que dizer.
Se.
Não porque queremos o oposto, certo?
Então, se isso não existir, queremos convertê-lo em verdadeiro para que possamos fazer algo dentro deste bloco, que
é criar a pasta.
Então, como podemos fazer isso?
Mais uma vez, usamos o módulo OS e usamos o método make Durrs ou make directory e apenas fornecemos a pasta
de saída do diretório.
Então, novamente, vamos testar nosso código e se eu executar isso.
Olha só, temos a nova pasta.
Incrível.
E assim, se eu executar este código novamente, veremos que não criamos outra pasta porque
enquanto estamos apenas verificando isso e porque esta pasta existe agora, não vamos duplicar e fazer outra pasta.
Incrível.
Portanto, passo a passo, estamos avançando e, novamente, você pode estar se perguntando.
Calma, André, nunca aprendi sobre fazer durras, como faço isso?
E, novamente, isso é algo que você apenas tem que praticar, onde você procura o que o modelo faz e você pesquisa no Google
e é assim que você descobre as coisas.
Ninguém memorizou as coisas como um programa.
Não me odeie.
Só estou ajudando você a praticar esse músculo.
Tudo bem, última parte.
A última parte é percorrer os baralhos de pôquer que pegam cada imagem, convertê-la e salvá-la na
nova pasta.
Então, como podemos fazer isso?
Bem, fazemos um loop for e diremos o nome do arquivo em.
E, novamente, usaremos o diretório da lista de pontos do sistema operacional.
E esses serão os itens no diretório, então com a lista lá, o que podemos fazer é apenas fornecer a pasta
da imagem.
E aqui agora temos cada um desses caminhos de arquivo.
Agora, aqui, posso dizer que imagem é igual a imagem ponto aberto e o que devemos fazer aqui?
Porque lembre-se, vamos abrir isso todas as vezes, certo?
E este arquivo JPEG para PNG está fora dessas pastas.
Então, de alguma forma, precisamos abrir.
Essas imagens estão nos decks de pôquer, mas lembre-se, queremos usar qualquer que seja a entrada porque o índice de busca da
pasta pode não ser sempre o mesmo.
Portanto, em vez de pegar a pasta de bolso, vamos simplesmente usar uma string F.
E dentro dessa string F, vou dizer que queremos o.
Imagem.
Pasta.
O que nos dará a barra do índice de bolso e a barra aqui, porque supomos que o U. S.
vão inserir a barra.
Não precisamos incluí-lo aqui e depois fornecer outra string, que será o arquivo.
Nome, que pegamos aqui.
Então agora abrimos essas imagens, cada uma delas, e então podemos apenas convertê-las, certo?
Portanto, vamos convertê-los dizendo "image dot safe".
E mais uma vez, vamos usar uma string F e fazer a mesma coisa, mas desta vez para a pasta de
saída.
Então vou dizer.
Pasta de saída.
Dê a ele o.
Nome do arquivo.
Em seguida, vírgula e convertê-lo em PNG.
E apenas por diversão, digamos que imprima tudo pronto para nos informar que sempre que uma imagem é processada, nós imprimimos
tudo pronto.
Agora vamos tentar executar este código.
Na verdade, há um bug neste código que teremos que corrigir, mas vamos ver o que acontece.
Então, vou executar isso.
E lá vamos nós, tudo pronto, tudo pronto, tudo feito para imagens e parece que funcionou
bem.
Vamos dar uma olhada se vou para a nova pasta aqui.
Hmmm, parece que ainda estão em jetpacks.
Isso é estranho.
Por que isso seria?
Eu pensei que deveríamos estar convertendo isso certo?
Bem, e se aqui dentro, salvarmos, faremos um ponto?
Então, novamente, vamos diminuir um pouco o tamanho, então vamos dizer salve-nos ponto org e formato de arquivo PNG se eu
executar isso.
Tudo bem, olhe para isso, agora temos as imagens, mas, oh, temos JPAC, Dot, PMG, o que está acontecendo
aqui?
Bem, temos que limpar nosso nome direito.
Então, o que precisamos fazer.
É quando pegamos a imagem aberta, precisamos remover o ponto jpeg dessa imagem para que possamos salvá-la como P
e G.
Então, como podemos fazer isso?
E isso é algo que você pode ter usado no Google, porque na verdade existe uma ferramenta útil que podemos usar com
o módulo do sistema operacional que nos permite fazer isso.
Então, o que podemos fazer é dizer limpo.
Nome e diremos que deve ao Dr. Ruth.
Texto dividido encaixado.
E o que isso vai fazer é dividir o texto para nós.
Deixe-me mostrar que vou dizer o nome do arquivo.
E aqui, não vou salvar nada, vou comentar isso.
E eu só quero imprimir o nome limpo.
Então, vamos ver o que o texto dividido faz.
Vou limpar isso e fugir.
Novamente, oh, e eu tenho um adolescente a mais aqui, deve ser dividido em texto, então vamos dizer isso de novo.
E veja isso, me dá uma tupla que divide o texto entre o nome e a extensão, que é extremamente
útil.
Então, só precisamos manter essa primeira parte e não nos importamos com essa parte, então podemos
acessar o nome limpo dizendo zero.
Portanto, o primeiro item na tupla.
Então, agora, se eu voltar a isso e em vez de finalmente usarmos o nome limpo para salvar a imagem.
Isso deve funcionar.
Deixe-me remover alguns dos comentários aqui, e outra coisa que quero fazer é remover todas
essas imagens porque não precisamos mais delas.
Idealmente, temos apenas imagens PMG.
Na verdade, vou remover essa nova pasta.
Então, digamos delete.
OK, você pode excluí-lo.
Ai está.
Eu vou salvar.
E vamos ver se isso funciona agora.
Vamos executar nosso comando.
Tudo feito se voltarmos, ei, verifique isso.
Todas as nossas imagens agora são PMG e você viu como isso era rápido.
Acabamos de criar nosso primeiro JPEG para PNG convertido.
Este arquivo agora pode ser convertido, desde que você dê a ele uma pasta com você pode dar a
ele centenas de imagens, milhares de imagens JPEG e ele vai convertê-las para PNG.
Se quiser, você pode até redimensioná-los.
Você pode até adicionar filtros de imagem a eles.
E somos capazes de fazer tudo isso com algumas linhas de código do Python e algumas bibliotecas úteis.
Muito, muito legal.
Agora estamos apenas arranhando a superfície aqui, mas você está começando a ver o poder do Python.
Temos um problema e esse problema pode ser resolvido com Python e suas bibliotecas.
E apenas pesquisando um pouco no Google, uma pequena tentativa e erro e depurando nosso código, acabamos de fazer
algo que poderia nos poupar muito tempo em vez de fazer isso manualmente.
Bom trabalho se você chegou até aqui, este é nosso primeiro projeto de processamento de imagem, espero que esteja animado.
Ainda tem muito mais para cobrir, mas dê um tapinha nas costas e vejo vocês no próximo vídeo.
Bye Bye.