Eu tenho um diretório com muita imagem, mas eles estão na orientação errada. Quero girar as imagens para corrigir a orientação (principalmente ± 90 o ). Usando o visualizador de imagens (foto), eu posso girá-los individualmente clicando no botão girar, mas isso é muito entediante.
Eu olhei man shotwell
e shotwell --help-all
não há nada que explique como chamar o comando rotate na linha de comando.
Existe alguma maneira de chamar o comando rotate do shotwell (ou qualquer outro visualizador) a partir do terminal? Ou quaisquer outros métodos para rotacionar imagens também são bem-vindos.
command-line
scripts
images
shotwell
pranphy
fonte
fonte
Respostas:
Se você está procurando uma implementação pura do bash, o
convert
comando do ImageMagick é o que você está procurando:Acima, os arquivos existentes permanecerão intactos e copiarão os que foram girados recentemente para
/tmp
que você possa movê-los ou copiá-los para outro lugar ou até mesmo substituir os existentes após a conversão e a verificação .(e funcionará em todas as versões recentes do Ubuntu como software padrão)
fonte
Isso irá copiar, girar e renomear seus arquivos.
Se você deseja deixar os arquivos originais intocados ainda, esse método pode funcionar bem para você ...
Observe que isso faz distinção entre maiúsculas e minúsculas: se seus arquivos forem nomeados * .jpg, substitua por minúsculas (ou * .png ...) de acordo.
fonte
Se você deseja substituir no local, a
mogrify
partir do pacote ImageMagick parece ser a maneira mais fácil de conseguir isso:CAVEAT : este não é um método de rotação sem perdas para arquivos JPEG, https://www.imagemagick.org/discourse-server/viewtopic.php?t=5899 .
jpegtran
consegue isso (não testado):fonte
mogrify
não é sem perdas para arquivos JPEG, masjpegtran
é.Aqui está como eu faço:
Instale o gThumb
Abra o nautilus e vá para o seu diretório de imagens. Clique com o botão direito do mouse em um e escolha
Open with -> gthumb
.No
view
menu, escolhaBrowser
ou pressione a Esctecla Isso abrirá o navegador de diretório, mostrando todas as suas imagens.Pressione Ctrle selecione as imagens que deseja girar ou selecione todas elas via Ctrl+ A.
Na barra de ferramentas, selecione
Tools
e, em seguida,Rotate Right
ouRotate Left
dependendo da sua preferência.fonte
Uma boa solução é fazer um conjunto de backups (por exemplo, prefixado
backup-
), girar os arquivos originais produzindo um conjunto de novos arquivos (por exemplorotated-
, prefixados ), fornecendo um conjunto deimg-1.png
backup-img-1.png
rotated-img-1.png
img-2.png
O
mv
/cp
tools [bash globbing] só pode adicionar prefixos, é confuso removê-los (ele usaria expansão de parâmetros, ewww ...)A
rename
ferramenta permite que você use as/before/after/
sintaxe de substituição (dased
ferramenta) para trocar esse prefixo de proteção e substituir os arquivos originais; portanto, seu processo geral para um determinado conjunto de imagensimg-
{1..n}.png
seria:Nota:
cp
vez demv
, mas existem 2 cópias do original (a desvantagem é a concatenação de prefixos, "rotated-backup-
...")-rotate 270
você obtém 90 ° no sentido anti-horário)echo "Rotating ${imgf#backup-} ... ";
depois dasconvert
chamadas (antesdone
)para uma forma mais compacta (por exemplo, um conjunto de arquivos numerados), usar alguma expansão de parâmetros como
echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";
em vez(Você não pode remover o prefixo e o sufixo na mesma expansão do bash param, portanto, use
cut
)Depois da verificação, você não estragou tudo e exclua as fotos, movendo-as de volta para a original.
fonte
Você pode copiar / colar este código e salvá-lo como
rotate.sh
Depois de salvar este arquivo, execute-o no terminal usando
./rotate.sh folder_containing_images
.fonte