IMAGEMAGICK LOTA CONVERTA

IMAGEMAGICK LOTA CONVERTA
Normalmente, podemos escrever uma linha de código para transformar uma imagem, seja para cortar, redimensionar, etc. Com o imagemagick, é tudo bastante simples. Mas suponha que, por um exemplo, tivéssemos 1000 fotos que precisavam ser modificadas, o que fazemos? Digite o comando 1000 vezes? Isso seria bobo, certo? É quando usamos as conversões em lote. O que isso significa é que podemos ser inteligentes com a transformação 1000 e escrever algumas linhas de código no máximo para garantir que o processo seja realizado de maneira suave e fácil. Basicamente, não precisamos escrever os 1000 comandos. Neste tutorial, aprenderemos como em lote converter as imagens em imagemagick.

Instalando o imagemagick

Vamos precisar do imagemagick para este processo. Primeiro, vamos instalá -lo usando a seguinte sintaxe:

sudo apt-get install imagemagick

Mogrify

Suponha que tenhamos 1000 fotos que tenham o “.extensão png ”. Suponha ainda que queremos transformar todos eles em um “.arquivo jpg ”.

Agora que terminamos de supor, podemos começar a escrever o código.

Mogrify -Format jpg *.png

Aqui, estamos dizendo ao imagemagick que há muitos “.imagens png ”para usar cada uma com um“.extensão png ”. Em seguida, dizemos ao ImageMagick com a chave de formato para transformar a imagem em uma imagem JPG. Aqui, o comutador de formato impede que as imagens sejam substituídas. Normalmente, a distinção entre mogrificar e converter é que Mogrify substitui os arquivos originais. Mas esse não é o caso quando usamos a chave de formato (uma exceção à regra).

A grande parte sobre esse pequeno pedaço de código é que ele vai converter o quantos fotos você quiser. E é uma liner! No entanto, neste caso, salvamos todos os novos arquivos na mesma pasta que os arquivos antigos.

Agora, suponha que eu queira salvá -los em um diretório completamente diferente. Temos um monte de *.JPG e nós os salvamos em uma nova pasta chamada NewFolder. Suponha ainda que os arquivos originais estejam na pasta de downloads.

(A idéia aqui é que todos os arquivos originais estão na pasta de downloads e criamos uma pasta chamada NewFolder para despejar as imagens transformadas.)

Downloads de CD
MKDIR NEWFOLder
Mogrify -Format png -ality 100 -Path ~/downloads/newFolder *.jpg

Então, o que acontece aqui? Aplicamos o comando Mogrify e adicionamos um novo switch chamado caminho. A chave de caminho garante que as novas imagens criadas sejam despejadas na pasta especificada (newFolder).

Agora, vamos supor que tenhamos uma combinação de imagens JPG e imagens PNG e queremos transformá -las em jpeg.

Mogrify -Format jpeg *

Nesse caso, em vez de especificar quais imagens queremos converter, apenas colocamos uma estrela. A estrela significa converter tudo.

Se houver pastas lá, ele meio que falha, então use o interruptor do caminho também.

Converter

Agora, vamos escrever algo um pouco diferente usando o comando convert em vez do comando mogrify (o comando Mogrify substitui os arquivos originais).

converter *.png -Resize 1234x1234 redimensionado -%d.png

O que você notou aqui? Fizemos a conversão em lote usando o comando convert. Para renomear o arquivo, usamos o termo "redimensionado-%d.png ”. O que é esse sinal "%d" no nome? O resto do nome faz sentido, certo? E o “%d” significa numerá -los com 0, 1, 2, etc.

Outro exemplo rápido:

converter *.png -Resize 1234x1234 redimensionado -%03d.png

O que significa "%03d"? Bem, olhe para a saída. Ele renomeia com 3 dígitos desta vez. Agora, em vez de ver o redimensionado-0.PNG, vemos o redimensionado-000.png.

rotações

Você também pode escrever os loops.

para f em *.jpg; Converta "$ f" -Dalidade 85 "$ f".png; feito

Nesse caso, ainda estamos usando uma linha, mas é um pouco mais complexo. Nesse caso, dizemos que, para cada imagem chamada f, convertemos a imagem e renomeá -la para "$ f.png ”. Como você deve ter notado, se a imagem é chamada de “Image1.JPG ", ele renomeia para" Image1.jpg.png ”. Este comando é um pouco falho, então vamos olhar para as outras maneiras de renomear a imagem.

Anteriormente, usamos o comando Mogrify. Não substituiu as imagens por causa do interruptor de formato. Mas se a chave de formato não estivesse lá, quando redimensionou, por exemplo, teria substituído o arquivo. Então, e se quisermos usar o comando convert?

para arquivo em *.png; Converter $ arquivo -Resize 1275x1222 redimensionado- $ arquivo; feito

Vamos tentar entender este comando.

A primeira parte do comando é a seguinte:

para arquivo em *.png;

O *.PNG refere -se a todos os arquivos PNG. O que isso significa é "para qualquer arquivo único na pilha de arquivos".

O comando principal é o seguinte:

Converter $ arquivo -Resize 1275x1222 redimensionado- $ arquivo

Esta peça simplesmente pega o arquivo $ (um arquivo) e o redimensiona usando o interruptor de redimensionamento e depois joga um arquivo chamado redimensionado- $ arquivo.

Terminamos então com feito. Esta parte é óbvia o suficiente.

Fácil o suficiente, certo?

Conclusão

A conversão em lote é um processo muito útil. Isso nos impede de ter que remar um comando um milhão de vezes. Em ImageMagick, a maneira mais simples de transformar um milhão de imagens é usando o comando Mogrify. No entanto, se não for usado em conjunto com a chave de formato, ele escreve sobre a imagem original. Por exemplo, se você usar o comando Mogrify para converter um monte de fotos para redimensioná -las, ele substitui as imagens originais. Às vezes, pode não ser o que você deseja e, nesses casos, você pode recorrer a escrever um pequeno script. O script em si é um revestimento único e você pode usar o comando convert, se desejar, então essa é a boa parte. Mas é um pouco mais complexo que o mais simples das conversões em lote feitas usando o comando Mogrify. De qualquer maneira, o ponto é que você não precisa mais transformar uma imagem de cada vez. Você pode prosseguir com as conversões em lote que podem converter milhares e milhares de fotos em um momento.