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.