Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Znak wodny
luki100011
post 9.12.2011, 12:20:26
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

Ostrzeżenie: (0%)
-----


Witam

ma funkcję która nakład obraz na obraz - jako znak wodny
nakładam png z "przezroczystym tłem"

oto kod - gotoweic z manuala
  1. function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
  2. // creating a cut resource
  3. $cut = imagecreatetruecolor($src_w, $src_h);
  4.  
  5. // copying relevant section from background to the cut resource
  6. imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
  7.  
  8. // copying relevant section from watermark to the cut resource
  9. imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
  10.  
  11. // insert cut resource to destination image
  12. imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
  13. }


działa bardzo dobrze, z jednym małym ale

jak zdjęciem bazowym jest PNG z przezroczystym tłem - tam również je usuwam - w miejscu wspólnym tam gdzie nakłada sie tło przezroczyste z znaku wodnego i png bazowego powstaje "czarna plama"

jakieś pomysły jak to rozwiązać ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
pianta_d
post 9.12.2011, 13:39:10
Post #2





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


@nospor rozwiązał podobny problem w tym temacie


Pozdrawiam
Go to the top of the page
+Quote Post
luki100011
post 10.12.2011, 09:58:05
Post #3





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

Ostrzeżenie: (0%)
-----


nie bardzo


obraz wygenerowany u mnie jest png - ma przezroczyste tło, znak wodny nakłada się z przezroczystością i tu jest ok


ale część wspólna zdjęcia bazowego i znaku wodnego - tylko elementy tła które są przezroczyste w 100 % dają w połączeniu efekt - kolor czarny więc powstaje w tym miejscu "plama"



--------------------
Go to the top of the page
+Quote Post
timon27
post 10.12.2011, 22:18:56
Post #4





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A po co tak, jeśli mogę zapytać?
Skoro to znak wodny to zapewne jest tylko jedno zdjęcie i możesz ja edytować.
Zamień przezroczyste tło na purpurę, a w kodzie php przepisz obrazek pixel po pixelu i wstaw warunek 'jeśli purpura to przepisz oryginalny pixel bez modyfikacji'.
Wiem że to znacznie zwiększy długość kodu, ale nie wpłynie na szybkość wykonywania skryptu.
Dodatkowo możesz wtedy zmodyfikować to tak, że znak wodny będzie pół-przezroczysty.
Ja tak robię.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:55