como encolher todas as imagens, jpg em um diretório para outro diretório usando imagemagick

3

Eu leio Usando o mogrify ( imagemagick) para lote converter todos os meus arquivos (com params) e parece que minha consulta / caminho é muito semelhante, exceto o fato de que todas as imagens no meu diretório têm a mesma largura e altura.

[$] mediainfo 20160714_161847.jpg                                                                                               
General
Complete name                            : 20160714_161847.jpg
Format                                   : JPEG
File size                                : 2.66 MiB

Image
Format                                   : JPEG
Width                                    : 4 128 pixels
Height                                   : 2 322 pixels
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Stream size                              : 2.66 MiB (100%)

Agora eu gostaria de compactá-los em lote para outro diretório para que as imagens originais / principais não sejam tocadas. Eu sei que qualquer compressão seria basicamente tirar informações da imagem e teria alguns artefatos.

Só para ser mais explícito, digamos que o número de diretórios seja -

/ home / shirish / input_directory / *. jpg - o input_directory possui todos os .jpgs que precisam ser reduzidos / reduzidos para que sejam aceitos para publicação na web.

/ home / shirish / output_directory / - Aqui é onde as imagens manipuladas devem acabar sendo. As imagens originais não devem ser tocadas e permanecem onde estão.

Um toque agradável seria se houvesse uma maneira de ver também o progresso da manipulação enquanto ela passa pelas imagens ou apenas com a barra ASCII ou, preferencialmente, com quantas imagens são feitas de quantas são. vai fazer junto com o console / barra ascii.

O que é interessante notar é que a imagem de amostra não parece ter nenhuma informação de GPS, embora eu tenha certeza de que algumas das imagens da coleção tenham essa informação. Existe também uma maneira de pesquisar / grep através de todas as imagens para ver se há informações de reconhecimento de localização (coordenadas de GPS) ou algo similar nas imagens.

Atualização - só para compartilhar funcionou - veja -

 ~/Pictures/original$ mogrify -path /home/shirish/Pictures/reduced -monitor -quality 70 -trim -resize '>'600x480 *.jpg

    load image[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1215 of 1216, 100% complete

    Resize/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1052 of 1053, 100% complete

    Save/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 479 of 480, 100% complete

A única coisa que eu não sei é de onde o imagemagick obtém a numeração, mas isso é para outro dia, outra pergunta completamente:)

    
por shirish 20.07.2016 / 11:13

1 resposta

3

Esta é uma versão mínima dos comandos para redimensionar para a largura 600 de altura 400 (se maior que isso), definindo a qualidade jpeg para 70 (é uma porcentagem: um número menor gera menos bytes, mas menos qualidade) .

cd /home/shirish/input_directory/
mogrify -path /home/shirish/output_directory/ -monitor   -quality 70  -trim  -resize '>'600x400 *.jpg

Se houver muitos arquivos, talvez seja necessário usar find|xargs

    
por 20.07.2016 / 15:38