AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1246014
Accepted
Joe Cola
Joe Cola
Asked: 2020-06-02 23:06:02 +0800 CST2020-06-02 23:06:02 +0800 CST 2020-06-02 23:06:02 +0800 CST

Como agrupar / multiprocessar imagens de corte no terminal?

  • 772

Tentei recortar várias imagens do mesmo tamanho, mas quando recortar 5 imagens e o processo terminar, apenas 4 imagens são recortadas, 1 imagem não é recortada, se recortar 1 imagem aparecerá um erro...

estou usando o comando

convert -crop 599x500+147+200 *.jpg

captura de tela em lote crop 5 imagem, mas processa apenas 4 imagens

captura de tela em lote crop 1 imagem, mas recebe erro

Como devo ajustar meu comando?

command-line image-processing imagemagick batch
  • 1 1 respostas
  • 4898 Views

1 respostas

  • Voted
  1. Best Answer
    Zanna
    2020-06-04T01:06:55+08:002020-06-04T01:06:55+08:00

    O primeiro problema parece acontecer porque ao convertreceber uma lista usará o último arquivo especificado como o nome do arquivo de saída. Todos os novos arquivos são nomeados após o último arquivo, que é deixado intocado (é improvável que seja o que você deseja ou espera, mas provavelmente é melhor do que seus arquivos serem substituídos inesperadamente).

    Quando há apenas um arquivo no diretório (para que seu glob se expanda para um arquivo), convertreclama sobre a falta de imagens definidas porque espera que pelo menos um arquivo de entrada e um nome de arquivo de saída sejam especificados. A posição que você está usando para o seu glob é a posição do nome do arquivo de saída, então convertestá reclamando da falta de um arquivo de entrada em sua segunda imagem.

    Para resultados mais confiáveis, você deve especificar os arquivos de entrada e saída:

     convert input-file.jpg -crop 599x500+147+200 new-file.jpg

    Se o nome for longo, você poderá usar a conclusão de tabulação (digite os primeiros caracteres e pressione tab para que o shell termine o nome) para o arquivo de entrada e o arquivo de saída (ou seja, está funcionando bem para mim).

    Para processamento em lote, você pode usar o shell para executar seu comando uma vez em cada arquivo e usar um pouco de manipulação de string para construir os novos nomes, para que os novos arquivos tenham nomes sensatos, algo como:

    for f in *.jpg; do 
        echo convert "$f" -crop 599x500+147+200 "${f/.jpg/-cropped.jpg}"
    done
    

    Com o echona segunda linha, isso mostra quais serão os novos nomes. Se os novos nomes parecerem corretos, você poderá remover echoe executar os comandos novamente para realmente cortar as imagens.

    Colocar os novos arquivos em um novo diretório pode ser mais fácil, especialmente se seus nomes de arquivos tiverem extensões diferentes...

    mkdir cropped
    for f in *.jpg *.png; do
        echo convert "$f" -crop 599x500+147+200 cropped/"$f" 
    done
    

    Novamente, você precisa remover echoantes que isso faça qualquer coisa.

    • 10

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve