Mam katalog z dużą ilością obrazów, ale są one w złej orientacji. Chcę obrócić obrazy, aby poprawić orientację (głównie ± 90 o ). Za pomocą przeglądarki zdjęć (shotwell photo) mogę obracać je indywidualnie, klikając przycisk obracania, ale to zbyt nudne.
Spojrzałem man shotwell
i shotwell --help-all
nic nie wyjaśnia, jak wywołać polecenie obrotu z wiersza polecenia.
Czy jest jakiś sposób na wywołanie polecenia obrotu shotwell (lub innej przeglądarki) z terminala? Lub wszelkie inne metody obracania obrazów są również mile widziane.
command-line
scripts
images
shotwell
pranphy
źródło
źródło
Odpowiedzi:
Jeśli szukasz czystej implementacji bash,
convert
polecenie ImageMagick jest tym, czego szukasz:Powyższe pozostawi nienaruszone istniejące pliki i skopiuje nowo obrócone, aby
/tmp
można je było przenieść lub skopiować gdzie indziej, a nawet zastąpić istniejące po konwersji i po weryfikacji .(i będzie działać na wszystkich najnowszych wydaniach Ubuntu jako standardowego oprogramowania)
źródło
Spowoduje to skopiowanie, obrócenie i zmiana nazw plików.
Jeśli chcesz jeszcze pozostawić oryginalne pliki nietknięte, ta metoda może działać dobrze dla Ciebie ...
Pamiętaj, że wielkość liter ma znaczenie: jeśli twoje pliki mają nazwy * .jpg, zamień odpowiednio na małe (lub * .png ...).
źródło
Jeśli chcesz zastąpić w miejscu,
mogrify
z ImageMagick Suite wydaje się najłatwiejszym sposobem na osiągnięcie tego:UWAGA : To nie jest bezstratna metoda rotacji plików JPEG, https://www.imagemagick.org/discourse-server/viewtopic.php?t=5899 .
jpegtran
osiąga to (niesprawdzone):źródło
mogrify
to, że pliki JPEG nie są bezstratne, ale takjpegtran
jest.Oto jak to robię:
Zainstaluj gThumb
Otwórz nautilus i przejdź do katalogu zdjęć. Kliknij jeden z nich prawym przyciskiem myszy i wybierz
Open with -> gthumb
.W
view
menu wybierzBrowser
lub naciśnij Escklawisz. Otworzy się przeglądarka katalogów pokazująca wszystkie twoje obrazy.Naciśnij Ctrli wybierz obrazy, które chcesz obrócić lub zaznacz je wszystkie za pomocą Ctrl+ A.
Na pasku narzędzi wybierz,
Tools
a następnieRotate Right
lub wRotate Left
zależności od preferencji.źródło
Dobrym rozwiązaniem jest utworzenie zestawu kopii zapasowych (np. Z prefiksem
backup-
), obracanie oryginalnych plików, tworząc zestaw nowych plików (z prefiksem np.rotated-
), Co daje zestawimg-1.png
backup-img-1.png
rotated-img-1.png
img-2.png
W
mv
/cp
narzędzia [bash masek] można dodać tylko prefiksy, to bałagan, aby je zabrać (by używać interpretacji parametrów, ewww ...)rename
Narzędzie pozwala na użycies/before/after/
składni podstawiania (odsed
narzędzia) w celu zamiany tego przedrostka ochronnej i nadpisanie oryginalnych plików, dzięki czemu cały proces dla danego zestawu obrazówimg-
{1..n}.png
byłoby:Uwaga:
cp
zamiastmv
, ale są tam 2 kopie oryginału (wadą jest łączenie prefiksów, „rotated-backup-
...”)-rotate 270
pozwala uzyskać kąt 90 ° w kierunku przeciwnym do ruchu wskazówek zegara)echo "Rotating ${imgf#backup-} ... ";
poconvert
połączeniach (przeddone
)w celu uzyskania bardziej zwartej formy (np. zestawu plików numerowanych), użyj
echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";
zamiast tego rozszerzenia parametrów(Nie można usunąć prefiksu i sufiksu w tym samym rozszerzeniu bash param, dlatego używaj
cut
)Następnie po weryfikacji nie pomieszałeś, usuń zdjęcia, przenosząc je z powrotem do oryginału
źródło
Możesz skopiować / wkleić ten kod i zapisać go jako
rotate.sh
Po zapisaniu tego pliku uruchom go z terminala za pomocą
./rotate.sh folder_containing_images
.źródło