ďťż

[php]znak wodny tworzy plik ale nie nakłada

       

Podstrony


telcocafe

Witam...zmontowałem taki skrypt do tworzenia znaku wodnego na zdjęciu
<?php function watermark($imgName, $text, $font, $size) { if(!($img = imagecreatefromjpeg($imgName))) { echo "Nie mogę otworzyć pliku: ".$imgName; return false; } $sW = imagesx($img); echo "sw: ".$sW."<br />"; $arr = imagettfbbox($size, 0, $font, $text); echo "arr: ".$arr."<br />"; $width = abs($arr[2] - $arr[0]) + 5; echo $width."<br />"; $height = abs($arr[1] - $arr[7]) + 1; echo $height."<Br />"; $white = imagecolorallocate($img, 0, 0, 0); echo $white."<br />"; $posX = $sW - $width; $posY = $sW; imagettftext($img, $size, 0, $posX, $posY - 5, $white, $font, $text); $name = substr($imgName, 0, strlen($imgName) - 4); $name = $name."-watermarked.jpg"; echo $name."<br />"; echo $img."<br />"; imagejpeg($img, $name); imagedestroy($img); } watermark('gory.jpg', 'napis wodny', 'verdana.ttf', 14); ?> <img src='gory-watermarked.jpg' />
Zdjęcie jest otwierane, potem jest tworzone gory-watermarked.jpg ale...ale gdy wyświetlam to zdjęcie (albo otwieram w katalogu) to jest bez znaku wodnego. ktoś wie gdzie jest problem?
Użytkownik Dawid-San edytował ten post 24 lipiec 2007, 17:03


spójrz: wyświetlasz napis w prawym górnym rogu,ale nie sprawdzasz długości napisu :) mam nadzieję,że dobrze widzę :P
//edit
jednak się mylę :( sorry
a może spróbuj najpierw stworzyć obraz,a później dopiero wrzucić tekst. imagecolorallocate przet tworzeniem boxa
Użytkownik andrzej_aa edytował ten post 24 lipiec 2007, 17:42
o ile dobrze cię zrozumiałem to przerzuciłem zmienna $white przed $arr ale niestety to nie pomogło

A masz czcionkę, której używasz na serwerze?



tak - robie to na localu u siebie i sprwadziłem mam czcionke arial
edit//
zresztą jeżeli nie ma czcionki to funkcja generuje błąd
Użytkownik Dawid-San edytował ten post 24 lipiec 2007, 18:04
Więc tak, sprawdziłem ten kod u siebie na localhoscie i działa... tylko że:
$white = imagecolorallocate($img, 0, 0, 0);
zapewne spodziewasz się białego koloru, a definiujesz czarny... jeśli wywołujesz to na obrazku z czarnym tłem, być może dlatego nie widzisz wyników.

Szkoda,że nie mam kompa to bym przetestował . . .
A spróbuj wyświetlić na górze po lewej napis - może masz złe obliczenia . . .

@kutra - dawałem tam zarówno parametry 0, 0, 0 jak i 255, 255, 255 mogłem po prostu skopiować po zmianie

wywołuje to na niebieskim tle wiec tak czy siak powinno byc widac :)...a wprowadzales jakies zmiany czy po prostu skopiowales i jest ok ?

Działa bez żadnych zmian, u mnie też.

@down: tego to ja juz nie wiem :P
Użytkownik bryn edytował ten post 24 lipiec 2007, 19:39
to dlaczego u mnie nie ? :P

Może nie masz biblioteki GD2 w PHP, może nie masz tego obrazka w folderze ze skryptem albo inną nazwę ma, albo inne rozszerzenie... jeśli testujesz skrypt na serwerze to plik czcionki musisz mieć w folderze ze skryptem... może coś z rozmiarami pierniczysz - wysyłasz bardzo mały obrazek... ciężko powiedzieć dlaczego u Ciebie nie działa... skrypt technicznie jest dobry :)

znalazłem błąd..otóż wysokośc była równa szerokości przez co napis się nie mieścił ... zmniejszyłem parametr wysokości i gra gitara ;]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.