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.

Wymagania

Plik wymaga w sumie standardowych bibliotek i funkcjonalności, które powinny działać na większości serwerów. Mianowicie :

  1. PHP5
  2. obsługa plików .htaccess i mod_rewrite
  3. biblioteka GD2

Niestety skrypt jeszcze nie działa z przezroczystymi plikami png. Podczas skalowania przezroczystość się gubi. Być może w nowszej wersji się uda 🙂

Jak to działa

Całość składa się z trzech plików:

  1. watermark.php – główny skrypt, który robi całą czarną robotę
  2. .htaccess – każde żadanie pokazania pliku z rozszerzeniem .jpg kieruje do pliku watermark.php
  3. watermark.png – plik graficzny z naszym podpisem, który chcemy umieścić na zdjęciu.

Generalnie chodzi o to aby stworzyć taki oto efekt ze zwykłego zdjęcia.

Tulipany

Tulipany

W skrypcie można łatwo modyfikować między innymi :

  • rozmiar „tła” ramki,
  • kolor „tła” ramki,
  • koloru ramki,
  • odległość ramki od obrazka,
  • przesunięcie podpisu względem prawego boku,
  • przesunięcie podpisu względem dolnego boku,
  • skala podpisu,
  • minimalna szerokość obrazka, do której zostanie doklejona ramka i podpis,
  • ustalenie poziomu przezroczystości podpisu,

W następnych wersjach przewiduję posiadać :

  • możliwość wykrywania zdjęć pionowych i wklejanie podpisów w pionie,
  • możliwość wklejania przezroczystych podpisów.

FAQ

Oto lista odpowiedzi na pojawiające się pytania.

  1. W jakim formacie plików mogę używać podpisu ?
    Na dzień dzisiejszy skrypt obsługuje jedynie pliki PNG.
  2. Chcę aby podpis był zawsze w oryginalnym rozmiarze. Co zrobić, aby podpis się nie skalował ?
    To proste. Wystarczy ustawić wartość zmiennej $scale=0 (zero)

Plik do pobrania : watermark.zip (wersja 1.0.5 ostatnia aktualizacja : 22-05-2009)

Jeśli skrypt się komuś spodoba może go sobie używać. Byłoby mi niezmiernie miło gdybym został o tym fakcie poinformowany, a gdybym otrzymał link zwrotny do bloga to byłoby naprawdę super.

Komentarze

  1. peter napisał(a):

    Super sprawa! Spróbowałem i wygląda dobrze, a prostota stosowania i oszczędność czasu to główna zaleta Twojego rozwiązania. Czy da się coś zrobić, żeby rozmiar watermarka się nie zmieniał? Jeśli zdjęcie zostało w czasie obróbki scropowane, watermark jest większy niż na zdjęciach niecropowanych.

    Grauluję pomysłu! Będę obserwował rozwój projektu.

    P.

  2. Kudlaty napisał(a):

    Patrz FAQ. Pobierz nową wersję i skonfiguruj tylko od nowa skrypt.

  3. Kudlaty napisał(a):

    I przed chwilką dodałem możliwość obrotu podpisu dla zdjęć pionowych. Zapraszam do testów.

  4. Kudlaty napisał(a):

    Aktualizacja. Od dziś można ustawić poziom kompresji pliku wyjściowego