Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Znak wodny
Forum PHP.pl > Forum > Przedszkole
luki100011
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ć ?
pianta_d
@nospor rozwiązał podobny problem w tym temacie


Pozdrawiam
luki100011
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"

timon27
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ę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.