Archiwa kategorii: skrypty

Masowe skalowanie i przycinanie obrazków

Jeden z moich klientów ma specyficzną galerię zdjęć. Mianowicie wszystkie miniaturki są przycięte w kwadrat, Niestety, albo i stety mój poprzednik tak pięknie to rozwiązał, że robił kwadraciki, ale niestety bez zachowania proporcji. Generalnie samo skalowanie obrazków jest banalne i to potrafi nawet Picasa (swoją drogą robi to bardzo ładnie i sprawnie). Schody pojawiają się gdy chcemy zrobić crop z miniaturki z powiedzmy „wyśrodkowaniem”. Niestety nie każdy ma też Photoshopa, w którym można sobie zrobić do tego celu makro. Z pomocą przychodzi linia poleceń i genialne oprogramowanie Imagemagic, którą możemy pobrać tutaj.
Po pobraniu i zainstalowaniu wystarczy wpisać następującą komendę.

convert <image_name> -resize <size_thumbnail>^ -gravity center -crop <size_thumbnail>+0+0 -unsharp 1.5x1+0.7+0.02 <thumbnail_folder>/<image_name>.JPG

gdzie:
<image_name> – nazwa obrazka do skalowania
<size_thumbnail> – rozdzielczość miniaturki po przeskalowaniu (np. 64×64)
<thubnail_folder> – folder w którym chcemy zapisać miniaturkę

Uwaga !!!
Jeśli robimy to pod Windowsem to musimy użyć podwójnego daszku w parametrze resize, czyli powinno to wyglądać tak:
convert <image_name> -resize <size_thumbnail>^^ -gravity center -crop <size_thumbnail>+0+0 -unsharp 1.5x1+0.7+0.02 <thumbnail_folder>/<image_name>.JPG

I tyle. Można powiedzieć, też mi coś. Kilka kliknięć w dowolnym programie graficznym. A i owszem, ale zróbmy tak np. ze 100 zdjęciami klienta. Zapewne są do tego programy, ale my możemy użyć do tego Imagemagic plus pętla FOR. Podajhttp://blog.ebartoszyce.pl/wp-admin/post.php?post=849&action=trash&_wpnonce=8374527af7ę przykład dla systemu Windows:

FOR %a in (*.jpg) DO convert %a -resize <size_thumbnail>^ -gravity center -crop <size_thumbnail>+0+0 -unsharp 1.5x1+0.7+0.02 <thumbnail_folder>/%a

I mamy pętelkę, w której przeskalujemy wszystkie pliki o rozszerzeniu jpg i zapiszemy je w nowym folderze.

Uwaga !!!
Jak wyżej, jeśli robimy to pod Windowsem to musimy użyć podwójnego daszku w parametrze resize, czyli powinno to wyglądać tak:

FOR %a in (*.jpg) DO convert %a -resize <size_thumbnail>^^ -gravity center -crop <size_thumbnail>+0+0 -unsharp 1.5x1+0.7+0.02 <thumbnail_folder>/%a

W powyższych przykładach użyłem także wyostrzenia obrazków „-unsharp 1.5×1+0.7+0.02”, które można pominąć, ale ja zalecam jego użycie. Parametry wyostrzenia są takie jak domyślnie w Photoshopie w masce wyostrzającej.

I to by było na tyle. W zasadzie problem można rozwiązać „live” za pomocą już prezentowanego kiedyś przez mnie skryptu ale chciałem zrobić to inaczej niż zwykle 🙂

A teraz jak to wygląda w praktyce.
Plik oryginalny:
DSC_5745-org

A tu wygenerowana miniaturka:
DSC_5745

Miłego dnia:)

Automatyczny podpis i ramka na zdjęciu

Często przeglądając portfolio różnych fotografików, widać dodane do każdego zdjęcia ładne (kwestia gustu wiem) obramowanie oraz najczęściej przezroczysty podpis. Nie wiem jak jest zazwyczaj, ale wydaje mi się, że autorzy po prostu w Photoshopie doklejają takie cuda do każdego zdjęcia ręcznie. Ja natomiast poszedłem inna drogą i napisałem sobie skrypty, które wrzucam sobie do folderu w którym trzymam zdjęcia i podpisu mam że tak powiem z automatu. Zaletą takiego rozwiązania jest fakt, ze pliki na serwerze są że tak powiem „gołe” i jeśli nam się zechce zmienić podpis lub kolor ramki, to możemy to zrobić bez edytowania każdego zdjęcia w PS-ie.

Czytaj dalej