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;
}