exiftran
e JHead ( jhead -autorot
) pode fazer isso. exiftran
pode fazer isso sem perdas, não tenho certeza sobre jhead
.
Quando faço fotos com a minha câmera (Olympus E-520), nos dados EXIF a orientação é armazenada.
O visualizador de imagens padrão no Ubuntu está exibindo as imagens corretamente. Visualizador do Windows, no entanto, não.
Existe uma maneira de realmente rodar essas imagens (se necessário, de acordo com EXIF) em um lote no Ubuntu? Por exemplo, com uma ferramenta ImageMagick?
exiftran
e JHead ( jhead -autorot
) pode fazer isso. exiftran
pode fazer isso sem perdas, não tenho certeza sobre jhead
.
A ferramenta de conversão do ImageMagick tem uma sinalização -auto-orient que deve ser exibida o trabalho feito.
#!/bin/bash
JHEAD=jhead
SED=sed
CONVERT=convert
for f in *.jpg
do
orientation=$($JHEAD -v $f | $SED -nr 's:.*Orientation = ([0-9]+).*::p')
if [ -z $orientation ]
then
orientation=0
fi
if [ $orientation -gt 1 ]
then
echo Rotating $f...
mv $f $f.bak
$CONVERT -auto-orient $f.bak $f
fi
done
Eu joguei um script rápido para iterar * .jpg no diretório atual. Você pode facilmente modificar isso para pegar um caminho ($ 1) ou o que precisar.
Você pode usar XnView para fazer isso. Confira essas páginas para obter informações sobre como usar o XnView para fazer a rotação automática no modo em lote:
No Windows, você pode fazer isso usando o IrfanView . Da seção de perguntas freqüentes do site IrfanView:
Q: How to use JPG lossless operations (Rotation, IPTC, Comment) in batch mode?
A: Start the Thumbnail window, open the folder with JPGs, select many JPGs and see in thumbnail menu File for JPG Lossless Operations -> Lossless transformations with selected thumbs. Note: The auto-rotation option works only if the EXIF orientation tag is properly saved (not top-left).
Com o ImageMagick, você também pode usar o mogrify para girar os arquivos e gravar a imagem girada de volta nos nomes de arquivo originais.
mogrify -auto-orient *.jpg