O que é um bom programa para redimensionar em lote 100.000 imagens jpg?


21

O programa deve ser executado no modo de lote para redimensionar todos os arquivos em uma pasta e salvar novos arquivos em uma pasta diferente. Uma opção para definir a qualidade do jpg também seria ótima.


2
Uma combinação de find e ImageMagic.
mspasov

Respostas:


30

Estou um pouco surpreso que ninguém tenha mencionado a opção mais fácil, barata e menos técnica:

Automator

Primeiro, abra o Automator, que está na sua pasta Aplicativos.

Em seguida, escolha criar um novo fluxo de trabalho:

Criar um fluxo de trabalho de automação

Em seguida, adicione as seguintes etapas ao fluxo de trabalho, arrastando e soltando:

etapas do fluxo de trabalho

Quando você executa isso, o Automator vai:

  1. abrir uma janela pedindo para você escolher alguns arquivos (quantos você quiser)
  2. abrir outra janela perguntando onde você deseja salvar as cópias redimensionadas
  3. pergunte o tamanho que você deseja que as cópias redimensionadas sejam. Você poderá escolher um tamanho fixo ou uma porcentagem. Todas as imagens serão redimensionadas para esse tamanho ou para essa porcentagem.

(A caixa de seleção "mostrar esta ação quando o fluxo de trabalho for executado" significa que o fluxo de trabalho será pausado, exibirá a opção e permitirá que você a altere)

Depois de fazer isso, o Automator irá agitar e queimar e, quando terminar, emitirá um sinal sonoro para você.

Infelizmente, parece não ter uma opção para escolher a qualidade JPEG. No entanto, pelo preço (gratuito), é bastante conveniente.


Talvez seja o menos técnico para quem não usa o Terminal. E possivelmente o mais fácil, mas não é o mais barato das respostas aqui. Sips está incluído na compilação Unix do Mac. E o ImageMagick também é gratuito.
markhunte

3
É seguro assumir que o Automator é, para os fins desta discussão, gratuito, porque é razoável supor que o @mototribe esteja executando o OS X. Minha única preocupação seria quão bem o Automator lidaria com 100.000 imagens, mas, supondo que elas não estejam totalmente uma única pasta, eu continuaria alimentando uma pasta de cada vez até terminar. Eu executei esse mesmo fluxo de trabalho em centenas de imagens sem dificuldade. Não vejo razão para que isso não funcione contra muitos milhares, já que cada imagem é enviada uma de cada vez, mas eu confiava no modo de verificação.
Jaberg

Yep Automator fez o trabalho perfeitamente. Eu vim aqui pensando "Encontrei um utilitário de linha de comando que redimensionaria imagens em lote" ... Às vezes, a solução mais fácil também é a melhor. Felicidades.
Silouane Gerin

19

Eu gosto de usar o ImageMagick. sipse o Automator (que usa um método de redimensionamento idêntico) faz com que as imagens pareçam muito embaçadas sem nitidez adicional na minha opinião.

Você pode instalar o ImageMagick brew install imagemagickdepois de instalar o Homebrew ou sudo port install imagemagickdepois de instalar o MacPorts . Em seguida, execute um comando como este:

mogrify -filter lanczos2 -resize '500x500>' -format jpg -quality 90 -path /tmp/ *.jpg

500x500>torna as imagens mais largas ou mais altas que 500 px e ajustadas a 500 x 500 px. 500xsempre alterava a largura para 500 px e 500x500^tornava todas as imagens pelo menos 500x500px. -path /tmp/salva os arquivos de saída em /tmp/vez de modificar os arquivos no local.

Lanczos2ou o Lanczos de 2 lóbulos é muito parecido com Catrom. Comparado a Lanczos( Lanczos3), eles são um pouco menos nítidos, produzem menos artefatos de toque e produzem mais padrões de Moiré. O filtro padrão para diminuir as imagens é o Triangleque geralmente torna as imagens muito borradas na minha opinião.

-quality 100cria arquivos com o dobro do tamanho -quality 95, o que cria arquivos com o dobro do tamanho -quality 88.

Mais Informações:

http://www.imagemagick.org/Usage/resize/
http://www.imagemagick.org/Usage/filter/
http://lri.me/shell1.txt

Aqui está um comando semelhante que usa sips:

for f in *.jpg; do sips -Z 500 -s format jpeg -s formatOptions 80 "$f" /tmp/; done

-Z 500é como 500x500>no ImageMagick.

Se outras pessoas tiverem menos de 100.000 imagens, você também poderá usar a Visualização:

A visualização costumava usar o mesmo método de redimensionamento que o sipsAutomator, mas ele usa um método diferente desde 10.7. Eu prefiro o ImageMagick's Lanczos2.

Carreguei uma comparação das diferentes opções em http://19a5b0.s3-website-us-west-2.amazonaws.com/imagemagick-osx-resizing/index.html .


1
Gostaria de avisá-lo para usar mogrify: isso converte os arquivos no local, substituindo os originais! Se algo der errado, você perdeu seus arquivos! Melhor uso convert(também do ImageMagick).
Kurt Pfeifle

1
@KurtPfeifle Não se você especificar a -pathopção (que convertatualmente não tem).
Lri 17/07/12

Se você está buscando velocidade, sipstalvez seja a melhor escolha. Em um teste rápido com 1.000 JPGs, ~ 5 MB de redimensionamento para 800px de largura demoraram ~ 1 min. com sipse ~ 8 min. with mogrify(com buffers de disco eliminados, usando o GNU Parallel em um quadcore).
Stefan Schmidt

13

ImageMagick é um programa de interface de linha de comando e criado para esse fim. O uso e a instalação do ImageMagick podem intimidar, mas esse pacote de manipulação de imagens é o mais poderoso que encontrei até agora. Como a instalação da fonte pode ser um aborrecimento para usuários nativos do OS X, aconselho que você use o Homebrew .

Para instalar o ImageMagick usando o Homebrew, execute este oneliner no seu terminal:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Agora o Homebrew está instalado, é aconselhável seguir as sugestões do instalador após a instalação. Agora instalamos o ImageMagick usando brew.

brew install imagemagick

O ImageMagick agora está instalado e seu convertprograma pode ser usado para sua finalidade. Para converter uma imagem jpg grande em uma imagem png menor, você pode executar

convert input.jpg -geometry 800x600 output.png

Para responder à sua pergunta "Como redimensionar todos os arquivos em uma pasta e salvá-los em uma pasta diferente", você pode executar o seguinte script.

# create output dir
mkdir -p "../resized"

# Convert all .jpg files in the current folder
for image in *.jpg; do
    convert $x -geometry 800x600 resized/$x
done

O ImageMagick pode converter mais de 100 formatos de imagem diferentes, e quase todos os truques que você pode fazer com o Photoshop, o ImageMagick.


obrigado, foi o que acabei usando - no entanto eu o instalei no Drupal, pois estou importando as imagens para o Drupal.
Uwe

@the_karel, eu apenas aprimorei seu post anterior. Eu espero que você não se importe.
CousinCocaine

7

Várias pessoas mencionaram o ImageMagick. Aqui está uma receita: Para simplificar, suponha que todos os arquivos estejam em uma pasta (e a pasta não contém mais nada). Abra uma janela do terminal, CD nesta pasta e execute

mkdir ../resized
for x in *.jpg; do convert -geometry 800x600 $x ../resized/$x

onde você substitui o 800x600 pelo tamanho que desejar.

As vantagens incluem uma grande flexibilidade no ImageMagick convert, como a capacidade de selecionar diferentes configurações de qualidade para a imagem de destino ou definir a opção de redimensionamento em porcentagens. Ou você pode usar -geometry 800x800, nesse caso a proporção será preservada, mas o máximo de largura e altura será de 800 pixels.

As desvantagens são as óbvias: requer certa familiaridade com a linha de comando, além de uma vontade de explorar as opções da linha de comando convertpara as configurações desejadas. Esta não é uma tarefa para os fracos de coração.


4

Eu segundo GraphicConverter . Sou usuário registrado há 16 anos. Seu principal objetivo é a edição de imagens em processamento em lote e possui uma boa interface do usuário para projetar fluxos de trabalho personalizados e salvá-los.

Você também pode usá-lo em conjunto com o Automator, mas provavelmente não precisará.

Aqui estão algumas informações da página do GraphicConverter que explicam suas funções de edição de imagens em processamento em lote .

Conversão de lote com funções adicionais

O GraphicConverter oferece um processamento em lote sofisticado que automatiza completamente tarefas repetitivas aplicadas a uma seleção de imagens:

  • Converta todas as imagens de origem selecionadas de maneira fácil e rápida em um novo formato - independentemente de existirem 5 ou 5.000 arquivos de imagem; você acabou de definir o tipo de conversão e definir os detalhes
  • Durante o processo de conversão, você pode aplicar até 60 funções adicionais de lote, como rotação, redimensionamento, alteração da resolução etc.
  • Automatize a remoção do Mac OS Ressourcefork antes do upload dos documentos, se houver problemas de compatibilidade quando os arquivos de imagem forem colocados na Internet
  • Crie catálogos em formato HTML para publicação na Internet e ajuste as cores, tamanhos, etc. aos seus requisitos individuais (veja exemplos)
  • Renomeie uma seleção de documentos de acordo com critérios especiais de maneira rápida e fácil
  • Unir fotos (por exemplo, para o QuickTime VR)
  • Inserir ou extrair informações IPTC em ou fora de uma variedade de formatos de documento
  • e muito mais ...

insira a descrição da imagem aqui


4

Este é mais um script de redimensionamento de imagem em lote simples, limpo e eficaz. Se você estiver lidando muito com gráficos e resoluções diferentes, poderá usar esse script e salvá-lo com valores diferentes para usos ocasionais.

Faça isso, alterando esse valor target_width 120 para suas necessidades e salve o script. Agora arraste suas imagens para o arquivo de script salvo para começar a redimensionar suas imagens.


Abra o Editor de scripts e crie o novo script a seguir:

-- save in Script Editor as Application
-- drag files to its icon in Finder

on open some_items
  repeat with this_item in some_items
    try
      rescale_and_save(this_item)
    end try
  end repeat
end open


to rescale_and_save(this_item)
  tell application "Image Events"
    launch
    set the target_width to 120
    -- open the image file
    set this_image to open this_item

    set typ to this_image's file type

    copy dimensions of this_image to {current_width, current_height}
    if current_width is greater than current_height then
      scale this_image to size target_width
    else
      -- figure out new height
      -- y2 = (y1 * x2) / x1
      set the new_height to (current_height * target_width) / current_width
      scale this_image to size new_height
    end if

    tell application "Finder" to set new_item to ¬
    (container of this_item as string) & "scaled." & (name of this_item)
    save this_image in new_item as typ

  end tell
end rescale_and_save

fonte original


3

A visualização é certamente uma boa solução para alguns redimensionamentos ocasionais. Também existem outras opções gratuitas, como ImageMagic (utilitário de linha de comando), Preview ou outra coisa mais o Automator, etc.

No entanto, se isso faz parte do seu trabalho e você precisa de uma verdadeira flexibilidade, um aplicativo para fins especiais poupa muito tempo e oferece muito mais oportunidades. Muitos usuários escolheram o redimensionador de imagens em lote Resize Sense ( http://veprit.com/resizesense ) por sua excelente flexibilidade e conveniência.

Disclaimer: Eu sou o desenvolvedor. É melhor você julgar o Resize Sense. O vídeo introdutório no site do produto informará exatamente o que há de tão especial no Resize Sense. Existe uma versão demo gratuita.



1

Normalmente, importo todas as fotos para o iPhoto e depois as exporto para diferentes tamanhos. Fiz isso em lotes de mais ou menos 300 imagens, mas nunca na escala que você deseja. Ainda assim, pode ser uma opção.


1

Ninguém mencionou o Apple Aperture.

Embora de maneira alguma seja o mais barato, ele vem com muitas outras coisas que você pode achar úteis. Substitui basicamente o iPhoto e mais alguns. Ele faz 95% do que os fotógrafos costumam usar no Photoshop. (Não será texto flamejante. :-)

Mas, a menos que você precise das outras coisas que o Aperture oferece, eu recomendo a abordagem ImageMagick - se você não se intimida com o download, a instalação e a execução de programas de linha de comando, e a abordagem Automator, que apesar da reivindicação de @ markhunte, é gratuita .


-1

Eu uso vinho (e XQuartz ) e IrfanView . Claro que você também pode usar o imagemagick na linha de comando. Para vinho e imagemagick, eu recomendaria o Homebrew .

irfanview em vinho no OS X


Eu uso o Irfanview há mais de 10 anos no PC e adoro. Mas eles não têm uma versão para Mac?
Uwe

1
Eu suspeito que eles querem dizer que executam o IrFranView com vinho. O Wine permite executar o software Windows em outros sistemas operacionais. Com o Wine, você pode instalar e executar esses aplicativos como faria no Windows. A imagem mostra claramente Tipo Windows Mac (botões na parte superior) com PC Janela GUI
markhunte

5
Usar o Wine com um aplicativo do Windows é realmente um exagero para algo que você pode fazer de forma nativa.
Matteo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.