Archívum - Okt 11, 2016
Kép vízjelezés kérdés
Sziasztok!
Kép vízjelezésben szeretném a segítségeteket kérni, mert a neten talált példák ellenére meggyűlt a bajom a vízjel átlátszóságának kezelésével. IrfanView-val, GIMP-el és webes eszközökkel is próbáltam átlátszó hátterűvé tenni a vízjel gyanánt kapott PNG képet, az eredmény mégis legtöbbször olyan, mintha egyszínű fekete lenne a vízjel kép háttere.
A képátméretező-vízjelező-mentő PHP kódom így néz ki:Ez az eredeti kép, ez a vízjel fájl, ez pedig az eredmény.
Kép vízjelezésben szeretném a segítségeteket kérni, mert a neten talált példák ellenére meggyűlt a bajom a vízjel átlátszóságának kezelésével. IrfanView-val, GIMP-el és webes eszközökkel is próbáltam átlátszó hátterűvé tenni a vízjel gyanánt kapott PNG képet, az eredmény mégis legtöbbször olyan, mintha egyszínű fekete lenne a vízjel kép háttere.
A képátméretező-vízjelező-mentő PHP kódom így néz ki:
- //$imageSize - az eredmény kép maximális mérete, képpontban
- $imageFactor = min($imageSize/$imageWidth, $imageSize/$imageHeight, 1);
- if (!$newImage = @imagecreatetruecolor($imageWidth*$imageFactor, $imageHeight*$imageFactor)) {
- return false;
- }
- //$image - imagecreatefromstring kimenet
- if (!imagecopyresampled($newImage, $image, 0, 0, 0, 0, $imageWidth*$imageFactor, $imageHeight*$imageFactor, $imageWidth, $imageHeight)) {
- return false;
- }
- //$wmFilePath - a vízjel PNG fájl elérési útja
- if (file_exists($wmFilePath) && ($watermark = @imagecreatefrompng($wmFilePath))) {
- $wmWidth = imagesx($watermark);
- $wmHeight = imagesy($watermark);
- $wmFactor = min($imageWidth*$imageFactor/$wmWidth, $imageHeight*$imageFactor / $wmHeight, 1);
- if (($newWatermark = @imagecreatetruecolor($wmWidth*$wmFactor, $wmHeight*$wmFactor)) && imagecopyresampled($newWatermark, $watermark, 0, 0, 0, 0, $wmWidth*$wmFactor, $wmHeight*$wmFactor, $wmWidth, $wmHeight)) {
- if (!imagecopymerge($newImage, $newWatermark, ($imageWidth*$imageFactor - $wmWidth*$wmFactor)/2, ($imageHeight*$imageFactor - $wmHeight*$wmFactor)/2, 0, 0, $wmWidth*$wmFactor, $wmHeight*$wmFactor, 100)) {
- return false;
- }
- }
- }
- if (!imagejpeg($newImage, $newPath, 100)) {
- return false;
- }