Linux – Retirar Borda Preta Widescreen em Múltiplas Imagens.

Como retirar as bordas pretas do widescreen de forma automatizada para múltiplas imagens?

Como retirar as bordas pretas de uma captura de tela em widescreen de forma automatizada para várias fotos? Esta foi a pergunta que me fiz outro dia quando estava analisando o Trailer de Duna (2020) de Denis Villeneuve para o Papo nas Estrelas. Quando estava editando o vídeo para o nosso Canal do Youtube, percebi que precisaria de uma forma rápida e automatizada para retirar estas bordas do widescreen, mas naquele momento eu não consegui encontrar, e acabei editando o vídeo com as bordas mesmo. Mas aquilo me incomodou e decidi que precisaria encontrar uma solução para situações futuras.

Afinal de contas o computador tem que fazer o trabalho por nós, evitando que tenhamos o trabalho manual de cortar imagem por imagem!

Basicamente eu tinha a primeira imagem e queria ter a segunda. Isso poderia ser feito rapidamente em qualquer editor de imagem se fosse uma ou duas imagens apenas. Porém, para este caso expecífico, eu precisaria editar mais de 20 imagens diferentes, o que demandaria um tempo que não tinha visto que pretendia lançar o vídeo o mais rápido possivel. Tinha que encontrar uma forma automatizada.

Qual a solução que eu encontrei? ImageMagick!

ImageMagick é um editor de imagens para Linux que você pode usar para automatizar suas edições diretamente no Shell.

Para isso precisaria utilizar o função “-shave“, que é o responsável por “cortar uma parte da imagem“. Certamente existem outras formas de utilizar o ImageMagick para alcançar o mesmo resultado, mas este foi a forma mais fácil que encontrei.

Como utilizar o ImageMagick?

A princípio o ImageMagick utiliza uma sintaxe bem padrão se sistemas UNIX:

command [options] input_image output_image

Mas você pode também utilizar a “forma mais moderna” de se fazer, que é colocar a imagem de entrada antes das opções:

command imput_image [options] output_image

O comando para utilizar o programa é “convert“.

Se você pretendo apenas converter uma imagem de um formato para outro, por exemplo, de .png para .jpeg, você deverá digitar algo assim:

Convert exemplo.png exemplo.jpeg

E com isso terá convertido a extensão de sua imagem. E é claro, você pode automatizar a conversão de um diretório todo, repleto de imagens de um determinado formato para outro utilizando-se do bom e velho “*”. Assim:

convert *.png *.jpeg

Pronto. Agora você economizou muito tempo em converter uma infinidade de imagens para o formato que você prefere.

A Função “-shave”

Pois bem, mas como então eu retiro as bordas pretas do widescreen de minhas imagens? Vamos lá, o comando -shave tem dois parâmetros a serem preenchidos, um horizontal (primeiro) e outro vertical(segundo). Algo assim:

convert exemplo.png -shave 0x0 saida.png

Apesar das barras pretas do widescreen estarem na horizontal, nós precisamos retirar verticalmente as barras, logo nós utilizaremos o segundo parâmetro. A questão é: Quanto devemos retirar?

Para isso, o que eu fiz foi editar a primeira imagem a mão, e determinar a diferença de tamanho entre elas. A imagem capturada do trailer tinha 1280x720px. Após editar minha imagem de referência, ela tinha 1280x536px. A segunda dimensão é a vertical, logo a conta que tive que fazer foi: 720px – 536px = 184px. Mas as barras estão acima e abaixo da imagem, logo metade do resultado foi retirado de cara parte da imagem inicial. Temos que determinar o quanto tem que ser retirado de cada lado: 184px /2 = 92px.

Este valor de 92px deverá ser colocado na segunda parte do parâmetro da função -shave, que é responsável pela vertical. E já que estamos fazendo tudo isso para automatizar o processo para múltiplas imagens, porque não aproveitar e converter o formato que utilizarei no site do Papo nas Estrelas? O resultado final ficou assim:

convert *.png -shave 0x92 dune-2020-trailer-analise.jpeg

E assim, segundos depois eu tinha mais de 20 imagens sem as bordas do widescreen, convertidas para o formato que utilizaria no site e ainda com nomes padronizados e numerados! Tudo isso com apenas uma linha de comando.

Vida longa ao Linux!