Przetwarzanie wsadowe plików obrazów w folderze za pomocą akcji folderu z Automatorem

0

Próbuję zmienić rozmiar nowych plików obrazów w folderze za pomocą akcji folderu, aby pliki, których rozmiar został już zmieniony na 300x250, nie były ponownie zmieniane. Chodzi o to, że mam problemy z tym, aby zmiana rozmiaru w ogóle miała miejsce.

Oto mój obecny przepływ pracy Automatora: enter image description here

Działa, gdy go przetestuję, dodając „Pobierz wybrane elementy Findera”, ale kiedy zamykam automator i dodaję nowe pliki do folderu, nic się nie dzieje. Używam Hazel do przenoszenia plików JPG do folderu, ale nic nie dzieje się z plikami po przeniesieniu ich do folderu, który ma zostać zmieniony

Joe Bobby
źródło

Odpowiedzi:

1

Ponieważ i tak już zainstalowałeś Hazel, może być łatwiej użyć go do wywołania zmiany rozmiaru obrazu. Utwórz nową regułę w Hazel, aby obejrzeć folder i wykonać polecenie:

enter image description here

nohillside
źródło
Próbowałem zrobić coś takiego z leszczyną, ale nie mogłem tego zrozumieć ... czy masz pomysł, jak bym to zrobił?
Joe Bobby
1

Będziesz musiał uruchomić go w pętli, w przeciwnym razie nie zadziała (jak możesz zobaczyć :))

Uruchom to zamiast tego

for f in "$@"
   do
     sips --resampleHeightWidth 250 300 "$f" 
   done

Opcja krok po kroku dostarczona przez Automater jest bardzo pomocna. Ponadto podczas testowania użyj akcji „Zapytaj o elementy Findera”, w tym „Zezwalanie na wiele zaznaczeń”.

enter image description here

napcae
źródło
0

Możesz także użyć ImageMagick:

brew install imagemagick
for f in /path/to/mat/*; do
  if [[ $(identify -format %wx%h "$f") != 300x250 ]]; then
    convert "$f" -filter lanczos2 -resize 300x250 "$f"
  fi
done

sips i Automator (używające identycznej metody zmiany rozmiaru) sprawiają, że obrazy wyglądają na dość rozmyte, jeśli nie dodasz żadnego wyostrzenia. Poniżej obrazu po lewej stronie zmieniono rozmiar sips --resampleWidth 300 obraz po prawej stronie został zmieniony convert -filter lanczos2 -resize 300x:

Lri
źródło