2010-11-14 21 views
6

Ok, przeszukałem internet i stackoverflow, ale po prostu nie mogę znaleźć odpowiedzi na mój problem.Nazwa użytkownika jako znak wodny

Potrzebuję do znaku wodnego obrazów przesłanych przez użytkowników dynamicznie, ale nie chcę, aby tekst był nakładany na obraz. Potrzebuję prawdziwego znaku wodnego: alt text

Jedynym sposobem na osiągnięcie tego efektu jest użycie Photoshopa, dodanie cienia i zmniejszenie wypełnienia do 0%. Ale jeśli moja witryna jest odwiedzana przez 200 użytkowników, którzy przesyłają swoje obrazy, nie mogę dla każdego z nich utworzyć nowego pliku PNG z jego nazwą użytkownika. Właśnie dlatego szukam dynamicznego rozwiązania tego problemu.

Znalazłem już klasy, jak dodać plik PNG jako znak wodny do obrazów, ale jak już mówiłem, to nie zadziała, jeśli moja strona jest odwiedzana przez wielu użytkowników.

Mam nadzieję, że ktoś wie, jak rozwiązać ten problem i uzyskać dynamiczny efekt na zdjęciach.

Dziękuję bardzo.

Odpowiedz

11

Dokumentacja biblioteki przetwarzania obrazu ImageMagick includes such a transparent watermark example. Nawet jeśli chciałbyś używać GD zamiast ImageMagick, może to dać ci wyobrażenie, jak to zrobić.

+0

Dzięki za odpowiedź. Jak wspomniałem wcześniej, już wiem, jak dynamicznie dodawać znaki wodne do obrazu. Chcę zrobić krok dalej i dynamicznie utworzyć plik PNG z efektami przezroczystości i cieni, jak widać powyżej dla każdego zarejestrowanego użytkownika. – moonwalker

+0

Niestety, nie rozumiem, co miałeś na myśli po raz pierwszy. Wielkie dzięki, dam ci szansę! – moonwalker

2

Możesz użyć imageMagick, aby zrobić to za pomocą PHP. Zrób trochę Googling dla PHP znak wodny imagemagick, ten wątek może pomóc: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17067

Zasadniczo chcesz zrobić plik PNG ze swoim znakiem wodnym. PNG pozwoli na przezroczystość alfa i możesz uzyskać efekt cienia, itp.

Zostanie to zastosowane do twojego obrazu JPG, a ostateczny znak wodny z obrazkiem JPG zostanie utworzony z dodanym do niego plikiem PNG.

Powinien działać.

+0

Dziękuję za odpowiedź.Jak wspomniałem wcześniej, już wiem, jak to zrobić. Potrzebuję teraz dynamicznie utworzyć plik PNG "znak wodny" dla każdego użytkownika z PHP. :) – moonwalker

0

Inne odpowiedzi tutaj są świetnymi odpowiedziami, ale chciałem wrzucić alternatywę.

Można dynamicznie budować scripts dla the GIMP, aby wykonać, co daje mnóstwo elastyczności. To jest przesada w stosunku do zwykłego znaku wodnego, ale jeśli potrzebujesz bardziej złożonego przetwarzania obrazu, jest to zdecydowanie opcja. CoolText.com to przykład strony internetowej, która to robi.

To samo podejście powinno działać również w Photoshopie. W rzeczywistości prawdopodobnie można utworzyć instancję Photoshopa pod nazwą COM interface with PHP.

Ponownie, nie polecam tego dla podstawowego znaku wodnego ... tylko jeśli potrzebujesz więcej funkcji niż to, co jest dostarczane z ImageMagick/GD.

+0

Dzięki za alternatywy. Przyjrzę im się. – moonwalker

0

Do pozostałych odpowiedzi dodam, że nie powinieneś generować obrazu w locie. Jeśli znak wodny jest nazwą użytkownika, wygeneruj plik znaku wodnego raz, gdy użytkownik zarejestruje się w witrynie (lub zmieni nazwę użytkownika), a następnie użyje tego pliku jako nakładki dla przesłanych obrazów. Pozwoli to zaoszczędzić sporo czasu procesora.

+0

To jest cały pomysł. Nie wiem, jak wygenerować plik PNG z przezroczystością i efektem cienia. Obraz jest tworzony raz, gdy użytkownik jest zarejestrowany (nie może zmienić swojej nazwy użytkownika) – moonwalker

Powiązane problemy