od kilku dni męczę się aby zrobić znak wodny na zdjeciach ale w żadnen sposób nie mogę tego zrobić dobrze. Przeczytałem już co sie dało w googlu i tutaj na forum i wciąż nie mogę tego poprawnie zrobić.
Chodzi o to że wprawdzie skrypt wstawia mi znak wodny ale po zapisaniu zdjęcia w kompresji 80% znak ten tak znacząco traci jakość że jest nie do zaakceptowania. Znak wodny mam w formie przeźroczystego png lub gifa. Jest to jeden zwykły wyraz i znak copyright (literka C w kółeczku). Znak ten nakładam skryptem na zdjecie jpg. Jeśli następnie zapiszę to jako jpg w jakości 100% to znak wodny wychodzi ładny jednak gdy zapisuję w jakości 80% to wychodzi w fatalnej jakości mimo że samo zdjęcie wciąć jest bardzo dobrej jakości. Próbowałem używać zarówno biblioteki GD jak i ImageMagick i w obu przypadkach dzieje się to samo.
Co więcej, nie mogę zrobić tego znaku nawet ręcznie w photoshopie. By zdjęcie uzyskało przyzwoitą wielkość czyli około 150 KB (oryginały mają około 320 KB) muszę go zapisać w photoshopie z jakością 5/12 ale wtedy znak wodny jest już w nieakceptowalnej jakości. Istna paranoja, tysiące serwisów www wstawia znaki wodne i dobrze one wyglądają a ja w żaden sposób nie mogę. Ma ktoś pomysł jak to rozwiązać? Poniżej wstawiam skrypt jaki używam do biblioteki imagemagick:
$thumb = new Imagick(); $thumb->readImage('zdjecie_80.jpg'); $thumb->resizeImage(940,705,Imagick::FILTER_LANCZOS,1); $thumb->setCompressionQuality(80); $znakwodny = new Imagick('znakwodny.png'); $thumb->compositeImage($znakwodny, $znakwodny->getImageCompose(), 5, 5); $thumb->writeImage('gotowy.jpg'); $thumb->clear(); $thumb->destroy();