Exif verilerine göre görüntüler otomatik olarak nasıl döndürülür


31

Fotoğraf makinemle (Olympus E-520) fotoğraf çektiğimde, EXIF ​​verilerinde oryantasyon kaydedilir.

Ubuntu'daki standart resim görüntüleyici bu görüntüleri doğru görüntülüyor. Windows görüntüleyici ancak.

Ubuntu'da toplu olarak bu görüntüleri (EXIF'e göre gerekirse) gerçekten döndürmenin bir yolu var mı? Örneğin bir ImageMagick aracıyla mı?

Yanıtlar:


37

exiftranve JHead ( jhead -autorot) bunu yapabilir. exiftranBunu kayıpsızca yapabilir, emin değilim jhead.


1
exiftran tam ihtiyacım olan şey gibi görünüyor !
Peter Smit

3
jhead -autorot mükemmel kayıpsız rotasyon yapabilen jpegtran'ı çağırır. IJG tarafından kayıpsız şeyler hakkında her şeyi unuttum. jpegclub.org/losslessapps.html Exiftran da kayıpsız rotasyon yapabilir ve jpegtran'dan daha iyidir çünkü görüntü dosyasındaki exif bilgilerine saygı duyar. Bununla birlikte, bazen (ve tüm ayrıntılardan emin değilim) kayıpsız bir şekilde dönemeyeceğinizi unutmayın. Bu nedenle, gerekli rotasyonu tanımlamak için jhead ile bir komut dosyası uygularsanız (öncekime benzer, ancak tüm dönüşleri işlemek için bir vaka ifadesi ile) kayıplı rotasyona geri dönmeyi desteklemelisiniz.
opello

1
Exiftran -a ile birkaç test yaptım (exif oryantasyon etiketine göre otomatik döndür) ve çok iyi çalışıyor gibi görünüyor. Kayıpsız rotasyon ile ilgili olarak, gerçekleştirilen rotasyonun tersini yaparak kaynak görüntüyü geri alamadım. Örneğin, exiftool -F 1.jpg -o 2.jpg; exiftool -F 2.jpg -o 3.jpg; 1.jpg ve 3.jpg md5sum aynı değildir. Daha yakın incelemelerde (Araxis birleştirme ikili karşılaştırmasıyla), bazen farklı olan sadece exif başlık bilgisiydi, diğer zamanlarda dosyadaki büyük değişiklikler. Bununla birlikte, Araxis merge'in resim karşılaştırması değişmemiş piksel göstermedi.
opello

Değiştirilmiş * piksel demek istemedim (piksellerle aynı görüntülerdi). Ayrıca - stackoverflow / superuser protokolünden emin değilim, ancak dmityugov'ın uygun aracı önermek için alması gerektiğini düşünüyorum.
opello

1
Exiftran'ın bazı meta verileri dosyadan kaldırabileceğini buldum. Örneğin, Samsung Galaxy S2 tarafından çekilen görüntüler zaman damgası alanına sahip (muhtemelen EXIF ​​değil) ve exiftran onu kaldıracak. exiftran -a ayrıca döndürme gerektirmeyen görüntüyü de değiştirir. jhead -otouto her iki konuda ücretsizdir. OTOH, dosyanın çalışma zamanını koruma seçeneğinden yoksundur (ancak geçici çözüm olarak -ft anahtarı vardır).
pfalcon

12

ImageMagick'in dönüştürme aracı işi halletmesi gereken otomatik yönlendirmeli bir bayrağa sahiptir.

#!/bin/bash

JHEAD=jhead
SED=sed
CONVERT=convert

for f in *.jpg
do
        orientation=$($JHEAD -v $f | $SED -nr 's:.*Orientation = ([0-9]+).*:\1: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

Geçerli dizinde * .jpg üzerinde yineleme yapmak için hızlı bir komut dosyası attım. Bunu bir yolda ($ 1) veya neye ihtiyacınız olursa olsun kolayca değiştirebilirsiniz.


1
Harika! Bulamadığımı. Bir grup imge yapmak için mogrify ile kullanıyorum. Sadece bir soru, değişmemesi gerekse bile neden tüm görüntüleri yeniden yazar? (Karma farklı)
Peter Smit

Neden olduğundan emin değilim, ancak hem resim farkına hem de ikili farklara bakarak yeniden kodlama yapıyor gibi görünüyor.
opello

Vay, bu harika. Çok teşekkürler. Başka bir süper cevap yoksa, kesinlikle bunu kabul edeceğim.
Peter Smit

2

Bunu yapmak için XnView kullanabilirsiniz . Toplu modda otomatik döndürme yapmak için XnView kullanma hakkında bilgi için bu sayfalara göz atın:

Windows'ta bunu IrfanView kullanarak yapabilirsiniz . IrfanView web sitesinden SSS bölümünden:

S: JPG kayıpsız işlemleri (Rotation, IPTC, Comment) parti modunda nasıl kullanılır?

A: Küçük Resim penceresini başlatın, klasörü JPG'lerle açın, birçok JPG'yi seçin ve küçük resim menüsünde bkz. JPG Kayıpsız İşlemler İçin Dosya -> Seçili başparmaklarla kayıpsız dönüşümler. Not: Otomatik döndürme seçeneği yalnızca EXIF ​​yönlendirmesi etiketi doğru şekilde kaydedildiyse (sol üst değil) çalışır.


1

ImageMagick ile, dosyaları döndürmek ve döndürülen görüntüyü orijinal dosya adlarına geri yazmak için mogrify'yi de kullanabilirsiniz.

mogrify -auto-orient *.jpg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.