ďťż
Podstrony
|
telcocafeWitam...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 ;] |
|||
Sitedesign by AltusUmbrae. |