Jak mogę skalować wszystkie obrazy w folderze do tej samej szerokości?

97

Chcę przeskalować wszystkie obrazy w danym folderze do tej samej szerokości (ale różnych odpowiednio skalowanych wysokości). Jak mogę to zrobić za pomocą narzędzia opartego na graficznym interfejsie użytkownika lub wiersza polecenia?

W przypadku punktów bonusowych, czy można ograniczyć, które obrazy są skalowane na podstawie ich początkowej szerokości (to znaczy, tylko skaluj obrazy, które mają szerokość> x i / lub szerokość <y)?

david.libremone
źródło
avconv może to zrobić za pomocą interfejsu CLI - patrz: libav.org/avconv.html#scale-1
Starszy Geek

Odpowiedzi:

152

Jest to bardzo łatwe do zrobienia dzięki imagemagick . Powinieneś być w stanie zainstalować go w Centrum oprogramowania. Sugerowałbym to do przetwarzania wsadowego obrazów.

Zmiana wielkości partii jest niezwykle prosta (przetestowałem ją z Ubuntu 11.10). Użyj następującego polecenia, aby zmienić rozmiar każdego pliku .jpg do szerokości 200 pikseli, zachowując proporcje:

$ convert '*.jpg[200x]' resized%03d.png

możesz zachować nazwę pliku, używając opcji -set. Dawny:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Jeśli masz więcej plików, których powinieneś użyć z find

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

To tylko zarysowanie powierzchni mocy imagemagick. Zmiana rozmiaru może być regulowana w nieskończoność . Aby uzyskać bardziej zaawansowane zmiany rozmiaru, musisz użyć tej -resizeopcji.

Możesz ograniczyć zmianę rozmiaru do zmniejszenia :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

lub powiększanie :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

Zajrzyj do dokumentacji geometrii, aby zobaczyć więcej opcji.

bandi
źródło
1
Dlaczego JPG do PNG?
JohnyTex,
3
Rozszerzenia .jpg i .png są tylko przykładem demonstrującym użycie różnych formatów.
bandi
Aby uzyskać więcej informacji o opcji -set: imagemagick.org/script/command-line-options.php ; w zasadzie -set <property-name> <value>ustawia właściwość; %<one-character>i %[<one-or-more-characters>]są rozszerzane przez Imagemagick do ich wartości; właściwości, które są używane do programowego określania wyjściowej nazwy pliku, muszą zaczynać się filename:, więc musimy skopiować basewłaściwość zawierającą ścieżkę obrazu do filename:<something>właściwości.
marcotama
1
Dzięki za udostępnienie tej sztuczki, nie wiedziałem!
marcotama
2
nieznana właściwość obrazu „% [baza]”
Post Self
32

W przypadku graficznego interfejsu użytkownika Phatch „jedno kliknięcie jest warte tysiąca zdjęć” jest najlepszym rozwiązaniem do tak szybkiej pracy. Jest już w repozytorium Ubuntu.

sudo apt-get install phatch
  1. Dodaj element Skaluj i zapisz
  2. Ustaw opcje skalowania / zmiany rozmiaru
  3. Ustaw opcje zapisu / wyjścia
  4. Biegać
  5. Ustaw folder wejściowy
  6. Kliknij partię, aby wykonać

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

user.dz
źródło
2
Na poparcie, przykład jak właściwie wykonać zadanie w pytaniu byłoby fajne :) Ale dziękuję za podpowiedź, fajne narzędzie!
jaywink
2
To nie działało na moim komputerze (Ubuntu Mate 16.04). Aplikacja utknęła na ekranie startowym
Gunith D
1
@GunithDevasurendra, spróbuj z wiersza poleceń, aby sprawdzić błędy. jeśli nie możesz go rozwiązać, napisz kolejne pytanie i dołącz ten wynik.
user.dz
1
Świetne narzędzie, którego używałem od lat. Niestety jest nieobsługiwany i nie działa w aktualnych wersjach Ubuntu. Mam nadzieję, że ktoś rozwidli kod, aby go naprawić.
Diego V
W Fedorze nie jest taki sam jak powyżej i nie ma takiej funkcjonalności
Vlad
29

Spróbuj tego:

sudo apt-get install gimp-plugin-registry

Następnie otwórz Gimp i otwórz wtyczkę Batch znalezioną w Filters > Batch > Batch Process.

Wybierz obrazy na Inputkarcie i zdefiniuj operację zmiany rozmiaru na karcie o nieoczekiwanej nazwie Resize.

Więcej informacji można znaleźć tutaj .

SirCharlo
źródło
21

Wypróbuj mogrifypolecenie z narzędzi ImageMagick.

  • podaj ścieżkę oddzielającą wydruk od oryginałów
  • podaj przykładową szerokość lub wysokość miniatury poniżej przykładu szerokości
  • w ten sposób zachowujesz oryginalną nazwę pliku :-)

Przykład:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg
miguelfg
źródło
1
To najlepsza odpowiedź moim zdaniem!
Tom
2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai
+1, a możesz zmienić rozmiar najdłuższego boku, czy to dla obrazu obróconego w
pionie
8

Odpowiedzi i zaakceptowane (i używam ImageMagick), ale dla kompletności ... Mam nietechnicznego szefa, który chciał prostej przeglądarki z podstawowymi narzędziami i musiał to być GUI. Zdecydowałem dla niego gThumb .

W widoku miniatur możesz ...

  • Wybierz obrazy, których rozmiar chcesz zmienić
  • Uruchom funkcję zmiany rozmiaru (kliknij ikonę klucza> Zmień rozmiar obrazów ..)
  • Wprowadź nowy rozmiar na podstawie pikseli lub wartości procentowej
  • Wybierz folder wyjściowy i gotowe.
Dennis
źródło
Zmiana rozmiaru jest przyzwoitą alternatywą dla Phatch, dopóki nie zostanie naprawiona na 16.04.
Hastig Zusammenstellen
3

Aby zmienić rozmiar obrazu partii , obejrzałem wiele pakietów i wreszcie znalazłem jeden z użytecznym interfejsem - converseen . Po odkryciu, że ważne ustawienia są nieco ukryte w przewijanym lewym panelu, wszystko jest w porządku.
Nie jestem pewien, czy spełnia to wszystkie przypadki użycia PO, ale możesz nie musieć patrzeć na dziwaczne interfejsy użytkownika imagemagick lub phatch.
Co dziwne, pakiety zarządzania zdjęciami, takie jak digikam, f-spot, fotoxx lub shotwell, wydają się nie rozpoznawać potrzeby kopiowania / zmiany rozmiaru partii zdjęć przed przesłaniem ich do serwisów internetowych, takich jak photobucket lub (gag) flickr. Usługi te chcą, abyśmy robili wszystko po swojemu, więc nie ufam im za tworzenie kopii zapasowych oryginałów.

Mikrofon
źródło