Como criar um script / arquivo fácil de usar que encontre e gire imagens horizontais no Windows 7?

2

Se eu tiver uma pasta com centenas de imagens e algumas forem mais largas do que altas, eu gostaria de poder girar facilmente as imagens amplas para que tudo fique na vertical. Atualmente, eu tenho que folhear as miniaturas e virar manualmente todas as imagens horizontais.

Eu já vi "scripts de shell" e "imagemagick" mencionados a esse respeito, mas não consigo descobrir como devo usá-los no Windows 7. Como faço para criar algo como um arquivo em lotes que eu possa facilmente coloque na pasta e faça tudo por mim?

barbiedolphin
fonte
11
Suas imagens estão em jpeg e você está tentando girá-las seletivamente para ficar na vertical?
harrymc 31/01
Sim, são JPEGs. Se por "seletivamente" você quer dizer selecionar apenas os que eu quero (os mais amplos), está certo.
barbiedolphin

Respostas:

2

O processamento de .jpg (rotativo) pode degradá-los para melhor começar com a não substituição.

Baixar Imagemagick para Windows

De um arquivo em lotes. Não substitua originais. Gire 90 graus no sentido horário:

@echo off
SETLOCAL ENABLEEXTENSIONS
md "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\rotated\"
for /f "tokens=*" %%x in ('dir /b "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\*.jpg"') do "path-to-imagemagick\convert.exe" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\%%x" -rotate "90>" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\rotated\%%x"
exit /b

Por exemplo:

@echo off
SETLOCAL ENABLEEXTENSIONS
md "%USERPROFILE%\Desktop\New folder\rotated\"
for /f "tokens=*" %%x in ('dir /b "%USERPROFILE%\desktop\new folder\*.jpg"') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%USERPROFILE%\desktop\new folder\%%x" -rotate "90>" "%USERPROFILE%\desktop\new folder\rotated\%%x"
exit /b 

De um arquivo em lotes. Substituir originais. Gire 90 graus no sentido horário:

@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "tokens=*" %%x in ('dir /b "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\*.jpg"') do "path-to-imagemagick\convert.exe" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\%%x" -rotate "90>" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\%%x"
exit /b 

Por exemplo:

@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "tokens=*" %%x in ('dir /b "%USERPROFILE%\desktop\new folder\*.jpg"') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%USERPROFILE%\desktop\new folder\%%x" -rotate "90>" "%USERPROFILE%\desktop\new folder\rotated\%%x"
exit /b 

Um atalho do Windows que gira 90 graus no sentido horário e sobrescreve todos os .jpg no diretório em que é iniciado:

   cmd /c for /f "tokens=*" %x in ('dir /b *.jpg') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%x" -rotate "90>" "%x"

Um atalho do Windows que gira 90 graus no sentido horário e sobrescreve cada .jpg no diretório em que é iniciado e em todos os subdiretórios:

   cmd /c for /f "tokens=*" %x in ('dir /b /s *.jpg') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%x" -rotate "90>" "%x"

Começar:

gire 90 graus no sentido horário

-rotate "90>"

gire 90 graus no sentido anti-horário

-rotate "-90>"

Aplique a rotação da imagem do caminho (usando operações de cisalhamento) à imagem. Use> para girar a imagem apenas se a largura exceder a altura. <gira a imagem apenas se a largura for menor que a altura. Por exemplo, se você especificar -rotate "-90>" e o tamanho da imagem for 480x640, a imagem não será girada. No entanto, se a imagem for 640x480, é girada em -90 graus. Se você usar> ou <, coloque-o entre aspas para evitar que ele seja mal interpretado como um redirecionamento de arquivo. Triângulos vazios nos cantos, que sobraram da rotação da imagem, são preenchidos com a cor de fundo. O acima é daqui.

Consulte também o operador -distort e, especificamente, o método de distorção 'ScaleRotateTranslate'.

Para obter mais informações sobre como usar o processamento de linha de comando imagemagick, clique aqui

algo
fonte