Questão redimensionando / comprimindo milhares de imagens para tamanhos razoáveis ​​[duplicados]


Duplicar Possível:
Lote "redimensionar" imagens JPEG para um tamanho de arquivo fixo
resizer rápido da imagem de grupo 

Eu tenho milhares de imagens (90 GB) principalmente documentos e coisas relacionadas com funcionários como cópias de passaporte ... etc. A maioria desses documentos é dimensionada e digitalizada em alta DPI (300 ou 200). Tomando amostras aleatórias, o tamanho médio é de 500 KB-1 MB por arquivo e eu poderia redimensioná-las ou compactá-las para menos de 100 KB com pouco trabalho, mesmo usando MSPain. Existe algum software que me ajude a fazer esse trabalho de maneira mais fácil, pois é quase impossível abri-los um por um e redimensioná-los.


4


origem


Por que não armazená-los em uma unidade compactada? Seria muito mais fácil do que executar uma conversão em lote. - Keltari
@Keltari não é uma opção
+1 para o erro de digitação do MSPain. Heh, e porque esta é uma boa pergunta. - Qqwy
Duplicação possível de resizer rápido da imagem de grupo, Lote "redimensionar" imagens JPEG para um tamanho de arquivo fixoe Granel converter fotos para tamanho menor?. - Breakthrough
@Breakthrough Estes são os dados para menos de 6 meses. É um enorme arquivo .. longa história curta, eu preciso fazer as coisas menores ...


Respostas:


Imagemagick posso redimensionar imagens.

convert input.jpg -resize 600x600 output.jpg

Observe que isso definirá um tamanho máximo para cada lado, mas manterá a proporção. Assim, uma imagem de 1200x1000 redimensionada com o comando acima será dimensionada para 600x500 pixels, enquanto uma imagem de 1000x1200 será redimensionada para 500x600.

Você pode, claro, colocar isso em um script. Na festança, para converter cada *.jpg em um diretório para um jpg 600x600:

for f in ./*.jpg; do convert "$f" -resize 600x600 "${f%.jpg}-resized.jpg"; done

Para fazer o mesmo recursivamente:

find . -type f -name *.jpg -exec bash -c 'convert "$0" -resize 600x600 "${0%.jpg}-resized.jpg"' {} \;

Eu não sei como fazer isso no script de linha de comando / lote do Windows, mas sei que é possível.

Se você deseja sobrescrever seus arquivos originais, você pode usar o ImageMagick's mocrificar comando:

mogrify input.jpg -resize 600x600

Isto tem a vantagem extra de poder usar a expansão do shell, para que você possa redimensionar cada * .jpg em um diretório sem recorrendo a um loop for:

mogrify ./*.jpg -resize 600x600

Para usá-lo recursivamente, você teria que soltá-lo em um comando de localização, como acontece com convert:

find . -type f -name *.jpg -exec mogrify '{}' -resize 600x600 \;

6



Você também deve observar o comando relacionado "mogrify" (uma versão de "convert"), que substitui o arquivo original pelo redimensionado, em vez de criar um novo arquivo redimensionado. Caso contrário, você pode precisar encontrar uma maneira de excluir os originais depois. - Jost


Xnconvert (portátil) pode processar milhares de imagens

No seu caso você pode tentar

  • definir um DPI mais baixo
  • redimensionar para uma resolução mais baixa
  • escolha outro formato de arquivo
  • escolha outro método de compactação

enter image description here


3





IrfanView faria o trabalho para você. Ele tem uma ferramenta "Conversão em lote / Renomear" com a qual você pode fazer muitas coisas, incluindo o redimensionamento.

A partir de este tutorial sobre como redimensionar imagens com o IrfanView:

  1. Inicie o IrfanView e acerte o B chave. Isso leva você para o modo em lote.
  2. Adicione todos os arquivos ou pastas inteiras aos arquivos de entrada
  3. Altere o formato de saída e altere a porcentagem de qualidade
  4. use a opção Avançado para redimensionar todos os arquivos

    enter image description here

Note que o IrfanView é gratuito para Apenas uso não-comercial.


2





FastStone Photo Resizer - fácil e simples. Freeware, boa interface gráfica e muitas opções. http://www.faststone.org/download.htm


0



detecta automaticamente um tamanho razoável para documentos ou eu tenho que definir uma largura / altura fixa?
Você pode redimensionar a imagem com base em um lado (por exemplo, longo) e definir o formato de saída (e, por exemplo, a qualidade da imagem em jpg). Como resultado, você obtém todas as fotos com tamanho similar. Não consigo imaginar outra maneira razoável de diminuir o tamanho de várias fotos. - gglon