Como posso dimensionar todas as imagens em uma pasta para a mesma largura?


97

Quero dimensionar todas as imagens em uma pasta específica para a mesma largura (mas diferentes alturas dimensionadas adequadamente). Como fazer isso usando uma ferramenta baseada em GUI ou em linha de comando?

Para pontos de bônus, é possível restringir quais imagens são dimensionadas com base em sua largura inicial (ou seja, somente imagens em escala com largura> xe / ou largura <y)?


O avconv pode fazer isso através da CLI - Veja: libav.org/avconv.html#scale-1
Elder Geek

Respostas:


152

Isso é muito fácil de fazer com o imagemagick . Você deve conseguir instalá-lo no Centro de Software. Eu o sugeriria para o processamento em lote de imagens.

O redimensionamento do lote é incrivelmente simples (eu testei com o Ubuntu 11.10). Use o seguinte comando para redimensionar cada arquivo .jpg para 200 pixels de largura, mantendo a proporção:

$ convert '*.jpg[200x]' resized%03d.png

você pode manter o nome do arquivo usando a opção -set. Ex:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Se você tiver mais arquivos, deverá usar o find

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

Isso está apenas arranhando a superfície do poder do imagemagick. O redimensionamento pode ser ajustado infinitamente . Para um redimensionamento mais avançado, você precisa usar a -resizeopção

Você pode limitar o redimensionamento a encolher :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

ou ampliando :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

Veja a documentação da geometria para ver mais opções.


1
Por que jpg para png?
JohnyTex

3
As extensões .jpg e .png são apenas um exemplo para demonstrar o uso de diferentes formatos.
bandi

Para mais informações sobre a opção -set : imagemagick.org/script/command-line-options.php ; basicamente, -set <property-name> <value>define uma propriedade; %<one-character>e %[<one-or-more-characters>]são expandidos pelo Imagemagick ao seu valor; As propriedades usadas para determinar programaticamente o nome do arquivo de saída precisam começar filename:, portanto, precisamos copiar a basepropriedade, contendo o caminho da imagem, para uma filename:<something>propriedade.
Marcotama 24/10

1
Obrigado por compartilhar este truque, eu não sabia!
Marcotama 24/10

2
propriedade de imagem desconhecida "% [base]"
Post Self

32

Para a GUI, o Phatch "um clique vale mais que mil fotos" é o melhor para um trabalho tão rápido. Já está no repositório Ubuntu.

sudo apt-get install phatch
  1. Adicionar Escala e Salvar item
  2. Definir opções de dimensionar / redimensionar
  3. Definir opções de salvamento / saída
  4. Corre
  5. Definir pasta de entrada
  6. Clique em lote para executar

insira a descrição da imagem aqui insira a descrição da imagem aqui


2
Para um voto positivo, um exemplo de como realmente realizar a tarefa na pergunta seria bom :) Mas obrigado pela dica, boa ferramenta!
Jaywink

2
Isso não funcionou na minha máquina (Ubuntu Mate 16.04). O aplicativo ficou preso na tela de inicialização
Gunith D 4/17/17

1
@GunithDevasurendra, tente na linha de comando para verificar se há erros. se você não conseguiu resolvê-lo, escreva outra pergunta e inclua essa saída.
user.dz

1
Ótima ferramenta, eu a usei por anos. Infelizmente, ele não é mantido e não funciona nas versões atuais do Ubuntu. Espero que alguém possa bifurcar o código para corrigi-lo.
Diego V

No Fedora, não é o mesmo que acima e não tem essa funcionalidade
Vlad

29

Tente o seguinte:

sudo apt-get install gimp-plugin-registry

Em seguida, abra o Gimp e abra o plug-in Batch encontrado em Filters > Batch > Batch Process.

Selecione suas imagens na Inputguia e defina a operação Redimensionar na Resizeguia com nome surpreendente .

Mais informações podem ser encontradas aqui .


21

Tente o mogrifycomando das ferramentas ImageMagick.

  • dê um caminho para separar a saída dos originais
  • dê a largura ou a altura desejada da miniatura, abaixo de um exemplo de largura
  • Dessa forma, você mantém o nome do arquivo original :-)

Exemplo:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg

1
Esta é a melhor resposta na minha opinião!
Tom

2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai

+1 e você pode redimensionar o lado mais longo se isso é para um retrato ou paisagem imagem girada: stackoverflow.com/a/5694903/227926
therobyouknow


8

Respondido e aceito (e eu uso o ImageMagick), mas para ser completo ... Eu tenho um chefe não técnico que queria um visualizador simples com algumas ferramentas básicas e tinha que ser uma GUI. Eu decidi no gThumb para ele.

Na visualização em miniatura, você ...

  • Selecione as imagens que deseja redimensionar
  • Inicie a função de redimensionamento (clique no ícone Chave inglesa> Redimensionar imagens ..)
  • Coloque um novo tamanho com base em pixels ou porcentagem
  • Selecione uma pasta de saída e pronto.

Para redimensionar, é uma alternativa decente ao Phatch até que seja corrigido para 16.04.
Hastig Zusammenstellen 06/06/19

3

Para redimensionar imagens em lote, observei muitos pacotes e finalmente encontrei um com uma interface utilizável - converseen . Depois de descobrir que as configurações importantes estão um pouco ocultas no painel esquerdo rolável, tudo está bem.
Não tenho certeza se isso atende a todos os casos de uso dos OPs, mas talvez você não precise procurar nas UIs peculiares do imagemagick ou phatch.
Estranhamente, pacotes de gerenciamento de fotos como digikam, f-spot, fotoxx ou shotwell não parecem reconhecer a necessidade de copiar / redimensionar lotes de imagens antes de fazer o upload para serviços on-line, como photobucket ou (gag) flickr. Esses serviços querem que façamos as coisas da maneira deles, para que eu não confie neles para fazer backup de originais.

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.