Skalowanie i obracanie obrazu bez zależności od danych EXIF?


10

Czy istnieje coś takiego jak prosty edytor obrazów dla systemu Linux, który pozwalał na skalowanie i obracanie obrazu bez użycia danych EXIF ​​do skalowania i obracania?

Do tej pory próbowałem EOG , Shotwell i GIMP, a kiedy obracam obrazy, przechowują je w nagłówku EXIF. Tego nie chcę.

Nawet jeśli GIMP może to zrobić, jest to zbyt czasochłonne, ponieważ wymaga mnóstwa kliknięć myszką w przypadku plików JPEG.


2
Więc w zasadzie, jeśli obrócisz obraz o 90 stopni w lewo, chcesz, aby sam obraz został obrócony o 90 stopni w lewo? Nie poprzez informacje przechowywane w danych EXIF, prawda?
JakeGould,

Dokładnie. Potrzebuję tego, ponieważ pliki Github README.md nie rozumieją EXIF.
Jasmine Lognnes

Bingo! Opublikowałem pełniejszą odpowiedź, ale uważam, że problem, na który napotykasz, jest zasadniczą różnicą między zapisaniem obrazu w nowoczesnym programie do edycji obrazu a eksportowaniem obrazu. Moja odpowiedź jest bardziej szczegółowa, ale wierzę, że jeśli wyeksportujesz plik JPEG za pomocą GIMP, uzyskasz dokładnie takie wyniki, jakie chcesz, bez konieczności zajmowania się danymi EXIF ​​preferowanymi dla transformacji takich jak skalowanie i obracanie.
JakeGould

Używając eksportu GIMP-a na exp pozbawionym pliku JPEG dodano nowy.
Jasmine Lognnes

Tak, mógł dodać nowe dane EXIF, ale czy rzeczywiste dane obrazu zostały zmienione w celu dopasowania orientacji zgodnie z pytaniem?
JakeGould,

Odpowiedzi:


15

Czy istnieje coś takiego jak prosty edytor obrazów dla systemu Linux, który pozwalał na skalowanie i obracanie obrazu bez użycia danych EXIF ​​do skalowania i obracania?

Zapisywanie kontra eksport

Wiem, że twierdzisz, że tak naprawdę nie chcesz tego robić w GIMP, ale z mojego doświadczenia wynika, że ​​problem, na który napotykasz - oprogramowanie faworyzujące dane orientacyjne EXIF ​​nad faktyczną transformacją pikseli na obrazie - sprowadza się do różnicy między eksportowaniem obrazu a zapisywanie obrazu.

W przeszłości 100% wszystkich edytorów obrazów na świecie faktycznie przekształcało / modyfikowało piksele w przypadku prostych transformacji orientacji. Dopiero stosunkowo niedawno programy do edycji obrazu odkładają wykorzystanie danych EXIF ​​do przechowywania niektórych danych transformacji fizycznej.

Dlaczego? Łatwy. Ponieważ format JPEG jest formatem stratnym - nawet gdy jakość jest ustawiona na 100% - zapisanie pliku JPEG dla prostych czynności, takich jak obracanie obrazu, spowoduje degradację danych. W przeciwieństwie do przechowywania tych danych jako informacji EXIF, surowy obraz JPEG pozostaje nietknięty, ale dane transformacji są przekazywane dalej, dzięki czemu można zobaczyć obrócony obraz bez degradacji obrazu w tym procesie.

Tutaj zaczyna się koncepcja eksportu. Wiele programów do edycji obrazów, takich jak GIMP, pozwala eksportować obraz, co w zasadzie oznaczałoby modyfikację samych danych obrazu i zoptymalizowanie go do użycia w oprogramowaniu do edycji obrazu.

Tak więc, chociaż mogą istnieć inne narzędzia programowe, które jawnie modyfikują dane obrazu do zadań takich jak obrót, instalacja i korzystanie z nich może być nadmierne. Zamiast tego polecam po prostu eksperymentowanie z funkcją eksportu w dowolnym oprogramowaniu do edycji obrazów; czy będzie to GIMP, Photoshop czy coś innego.

Przetwarzanie wsadowe

To powiedziawszy, wspominasz, że GIMP może być zbyt czasochłonny dla twoich potrzeb. Nie jest jasne, jaki dokładnie jest Twój przepływ pracy, ale jeśli masz folder / katalog wypełniony plikami JPEG, które mogą wymagać przetworzenia, zaleciłbym zbadanie narzędzi wymienionych w innej odpowiedzi :

  • exiftran : narzędzie służące do przekształcania obrazów JPEG z aparatu cyfrowego, które może wykonywać następujące czynności:

Może wykonywać bezstratne obroty jak jpegtran, ale w przeciwieństwie do jpegtran dba o dane EXIF: może automatycznie obracać obrazy poprzez sprawdzenie znacznika orientacji exif, w razie potrzeby aktualizuje informacje exif (wymiar obrazu, orientacja), a także obraca miniaturę exif . Może przetwarzać wiele obrazów jednocześnie.

  • JHead : W szczególności zajheadpomocą-autorotopcji opisanej jako:

Za pomocą znacznika „Orientacja” nagłówka Exif obróć obraz, aby był ustawiony pionowo. Do wykonania obrotu służy program „jpegtran”. Ten program jest obecny w większości dystrybucji Linuksa. W przypadku systemu Windows musisz uzyskać jego kopię. Po obróceniu znacznik orientacji nagłówka Exif jest ustawiony na „1” (normalna orientacja). Miniatura Exif jest również obracana. Pozostałe pola nagłówka Exif, w tym wymiary, pozostają nietknięte, ale wysokość / szerokość JPEG są dostosowywane.

Ta funkcja jest szczególnie przydatna w przypadku nowszych aparatów cyfrowych, które automatycznie ustawiają pole orientacji w nagłówku Exif za pomocą wbudowanego czujnika orientacji w kamerze.

Oto inne narzędzie wspomniane w tym innym wątku :

  • NConvert : NConvert to wieloformatowy konwerter obrazów wiersza polecenia dla systemów Win32, Linux, DOS, OS / 2 i innych platform. Wygląda na to, że są tutaj szczegóły szybkiego uruchamiania. I wygląda na to, że jeśli korzystasznconvertz-jpegtransopcji, która jest dokładnie tym, czego szukasz. Zastanawiam się jednak, czy korzysta to z tej samej funkcji biblioteki / rdzenia,jpegtranco ta inna odpowiedź na to pytanie?

Wreszcie, być może użycie narzędzia ImageMagick convert z -auto-orientopcją byłoby dla Ciebie odpowiednie?

-auto-orient

dostosowuje obraz tak, aby jego orientacja była odpowiednia do oglądania (tj. orientacja w lewym górnym rogu).

Ten operator odczytuje i resetuje ustawienie profilu obrazu EXIF ​​„Orientacja”, a następnie wykonuje odpowiedni obrót obrazu o 90 stopni w celu zorientowania obrazu w celu poprawnego oglądania.

To ustawienie profilu EXIF ​​jest zwykle ustawiane za pomocą czujnika grawitacji w aparacie cyfrowym, jednak zdjęcia wykonane bezpośrednio w dół lub w górę mogą nie mieć odpowiedniej wartości. Również obrazy, które zostały „skorygowane” względem orientacji bez resetu tego ustawienia, mogą zostać ponownie „skorygowane”, co skutkuje nieprawidłowym wynikiem. Jeśli profil EXIF ​​został wcześniej usunięty, operator -auto-orient nic nie zrobi.


Byłoby idealnie, gdyby narzędzie wiersza poleceń mogło wykonać rzeczywisty obrót pikseli w oparciu o EXIF, a następnie wyczyścić informacje EXIF. Czy to jest możliwe?
Jasmine Lognnes

1
@JasmineLognnes Sam tak naprawdę nie użyłem żadnego z tych narzędzi - ale to pytanie jest dobrym odniesieniem do narzędzi, które powinienem zbadać - ale wydaje mi się, że exiftrani jpegtranmoże być tym, czego szukasz. Eksperymentowałbym z opcjami, które mają oba te narzędzia, i sprawdziłbym, co się stanie. Najlepsze, co mogę zrobić. Powodzenia!
JakeGould,

1
Może być zabawne, że system wybrał tę odpowiedź jako test kontrolny w kolejce przeglądu LQ Post. Głosowałem za tym, aby go nie usuwać, BTW, i najwyraźniej to była właściwa odpowiedź. :-)
fixer1234

@ fixer1234 Tak, sam to widziałem, kiedy wcześniej sprawdzałem posty niskiej jakości. Wesoły! Mogło to zostać wywołane przez liczbę różnych linków do różnych pakietów, które mi zalecają. Ale hej! Cieszę się, że istnieje jakiś zautomatyzowany mechanizm policyjny, który przynajmniej zawiera element ludzkiego filtrowania.
JakeGould,

2

Zwykle używam jpegtrando obracania zdjęć:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 obraca się w prawo, użyj 270 dla lewej (i 180 dla odwrócenia).


2

Podczas eksportowania w GIMP możesz kliknąć Zaawansowane w wyskakującym okienku tuż przed zapisaniem, w którym możesz wyłączyć EXIF ​​i XMP.

Ogólny algorytm do jego skryptu:

  1. Dla każdego pliku.
  2. Zapisz wartość z exiftool * | grep Orientation.
  3. Usuń exif za pomocą exiftran -ai *.
  4. Użyj convert -rotatez wartością z kroku 2.

Właśnie tego szukałem. Sposób, który wykrywa, czy obraz jest obracany, a następnie sposób obracania go na podstawie tego. Dzięki!
xarlymg89

0

Możesz użyć Exiftool do usunięcia danych EXIF ​​z obrazów JPEG. Następnie możesz obrócić obraz o dowolną wartość (np. Konwersję ).


Tak, świetnie się do tego nadaje, ale kiedy później edytuję obrazy, dodawane są nowe nagłówki EXIF.
Jasmine Lognnes

1
EXIFTool może usuwać dane, ale nie zmienia, nie obraca ani nie skaluje i nie obrazuje. Po prostu usunie te dane, a następnie JPEG wyświetli się w jakimkolwiek surowym formacie, w jakim pierwotnie istniał. Jest to przydatne w niektórych przypadkach, ale nie w takim przypadku.
JakeGould,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.