PNG Zmiana rozmiaru partii i zapisywanie przy jednoczesnym zachowaniu przejrzystości


10

Mam około 700 zdjęć PNG. Muszę je zmienić i zapisać. Potrzebuję jednak również ich przejrzystości, aby były nienaruszone.

Próbowałem Irfanview, ale to nie zadziałało. GIMP działa, ale nie mogę znaleźć opcji oszczędzania wsadowego. Nie zamierzam ręcznie zmieniać rozmiaru i zapisywać ponad 700 zdjęć. To zbyt nudne.

Czy są jakieś aplikacje, które wykonują pracę, której potrzebuję?


Próbowałeś ImageMagick?
slhck

Nie, ale czy nie dotyczy to serwerów?
Grumpy ol 'Bear

1
Co masz na myśli mówiąc o serwerach? To oprogramowanie wiersza polecenia, które można uruchomić na dowolnym systemie operacyjnym.
slhck

Tak nie Wiersz poleceń nie jest moją siłą. Potrzebuję czegoś z przydatnym GUI.
Grumpy ol 'Bear

@DonSalva możesz to zrobić w obrębie 2 linii cmd, używając ffmpeg, nawet bez siły
Jet

Odpowiedzi:


10

Przepraszamy, musisz użyć wiersza polecenia. Naprawdę bardzo wątpię, że możesz znaleźć program GUI, który sobie z tym poradzi.

Nie określono, którego systemu operacyjnego używasz. W systemie Linux następujące polecenie zmieni rozmiar wszystkich plików .png w bieżącym katalogu. Pamiętaj, że zastąpi oryginalne obrazy:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Zauważ, że w przypadku linii Windows, jeśli używasz go w skrypcie, a nie w wierszu poleceń, musisz użyć %%izamiast %i.


Inną opcją byłoby skryptowanie GIMP . Ten skrypt zmieni rozmiar obrazu ( źródło ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Zapisz go jak batch_resize.scmw scriptskatalogu GIMP , a następnie uruchom w następujący sposób:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

AKTUALIZACJA:

Właśnie natknąłem się na ten post, który sugeruje, że wtyczka GIMP David's Batch Processor powinna robić dokładnie to, co chcesz. Artykuł dotyczy Linuksa, ale na stronie wtyczki znajduje się link do wersji systemu Windows .


Mój zły, zawsze zapomniałem o systemie operacyjnym. To Win7 64bit.
Grumpy ol 'Bear

ImageMagick ma wersję systemu Windows i powinieneś (jakoś) móc używać skryptu GIMP również w systemie Windows.
terdon

@DonSalva zobacz zaktualizowaną odpowiedź.
terdon

ImageMagick to niesamowite narzędzie do tego typu prac. Naucz się go używać, a pokochasz go na zawsze!
Lee Harrison

Wszystko dzięki @evilsoup za dodanie wiersza polecenia systemu Windows.
terdon

4

Myślę, że narzędzie ImBatch może ci pomóc w twoim zadaniu. Dla mnie działa dobrze z Win7 x64. To jest darmowe.


Świetne narzędzie, znacznie bardziej elastyczne niż IrfanView i obsługuje png z alfa - dzięki!
Tomáš Kafka

3

XNConvert ma prosty i intuicyjny interfejs GUI do tych zadań.

XnConvert to potężny i darmowy wieloplatformowy wsadowy procesor obrazu, który pozwala łączyć ponad 80 akcji. Kompatybilny z 500 formatami. Wykorzystuje moduł przetwarzania wsadowego XnViewMP

  • przetwarzanie wsadowe
  • zachowuje przezroczystość (testowane przy pomocy przezroczystego PNG )
  • automatyczna lub predefiniowana zmiana rozmiaru
  • nie wymaga instalacji

wprowadź opis zdjęcia tutaj


Próbowałem tego i nie zachowałem przezroczystości (wersja Mac). Czy robi to, jakiego rodzaju resampling jest używany (użyłem Lanczosa tak jak ty).
niico

Sam to wypracowałem - wystarczy to przy użyciu Bilinear Resampling. W oknie „Po” możesz zobaczyć, jak to będzie wyglądać - jeśli przezroczysty obszar jest czarny, wiesz, że nie zadziała.
niico

@niico Próbowałem teraz 3 różnych metod ponownego próbkowania, także Lanczosa. Wszystkie dają przezroczyste obrazy. Może wersja MAC działa w inny sposób
nixda

Próbowałem tego na PC i Mac - identyczne na obu. Co więcej - teraz zauważam, że ponowne próbkowanie, które zrobiłem, jest postrzępione jak diabli i nie nadaje się do użytku.
niico

2

Domyślnie użycie FFMpeg jest najkrótszym sposobem :)
Pobierz tutaj , umieść go w folderze z plikami, otwórz wiersz poleceń, przejdź do folderu (z cd) i napisz tam:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

i zmień 32x32w zależności od rozmiaru. Zmieni rozmiar twoich plików PNG i umieści je w Resizedfolderze.
Spowoduje to wykonanie pracy bez pliku wsadowego. Jeśli jednak chcesz umieścić to w pliku nietoperza, napisz %%zamiast %.

Mam nadzieję, że ci to pomoże.


0

Nie próbowałem ImBatch ani XNConvert, o których wspominali inni, ale oto kilka innych propozycji dla Ciebie:

  • pngquant (narzędzie wiersza polecenia. Ja sam korzystałem z graficznego interfejsu użytkownika Windows PNGoo zawartego na stronie)
  • Kwantyzator kolorów (wiele możliwości dostrajania ustawień w celu użycia różnych algorytmów ditheringu itp. Nigdy nie działałem tak dobrze, jak PNGoo / pngquant, ale może to wynikać z mojej ograniczonej wiedzy).
  • TinyPNG.com (bezpłatny serwis internetowy ma limit 20 plików, każdy mniejszy niż 5 MB)

0

Miałem ten sam problem wiele razy i przez większość czasu miałem zainstalowany program Photoshop. Skompletowałem więc ten skrypt, używając kilku inspiracji kodu innego użytkownika.

https://gist.github.com/pixelbacon/7754cba64125b0240504

Stosowanie

  • Zainstaluj Photoshop CC lub nowszą wersję.
  • Otwórz skrypt w Photoshopie.
  • W oknie dialogowym pojawi się monit o wybranie folderu źródłowego.
  • W oknie dialogowym pojawi się monit o wybranie folderu docelowego.
  • Kolejne okno dialogowe zapyta o maksymalną szerokość i wysokość.
  • Kolejne okno dialogowe poprosi o idealną szerokość, a następnie idealną wysokość.
  • Poczekaj, aż skrypt otworzy wszystkie pliki PSD lub AI, które masz w folderze źródłowym, i zapisz je jako przezroczysty PNG-24.
  • Okno dialogowe poinformuje Cię, gdy zostanie wykonane.

Bibliografia

Było więcej niż 2 linki do referencji, moja obecna reputacja nie pozwala mi już pisać. Zobacz oryginalny skrypt, ponieważ odniesienia są udokumentowane.

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.