Witam,
Stworzyłem funkcję do tego aby na zdjęcia zostały nakładane znaki wodne. Mam problem ze znakiem wodnym który jest w formacie png. Gdy zdjęcie jest w formacie jpg to znak wodny w png nie wygląda tak jak należy, poprostu mieszają się jakby kolory. Co zrobić aby logo ze znakiem wodnym w png był prawidłowo nakładany na różnego formatu zdjęcia? Poniżej moja funkcja:
public static function imageWithWatermark
($photo){
switch($size["mime"]){
case "image/jpeg":
$image = imagecreatefromjpeg($photo); //jpeg file
break;
case "image/gif":
$image = imagecreatefromgif($photo); //gif file
break;
case "image/png":
$image = imagecreatefrompng($photo); //png file
break;
default:
return false;
break;
}
$watermark = imagecreatefrompng('files/znak_wodny.png');
$width = imagesx($image);
$height = imagesy($image);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
imagecopymerge($image, $watermark, (($width - $watermark_width))-10, (($height - $watermark_height))-10, 0, 0, $watermark_width, $watermark_height, 60);
switch($size["mime"]){
case "image/jpeg":
imagejpeg($image, $photo); //jpeg file
break;
case "image/gif":
imagegif($image, $photo); //gif file
break;
case "image/png":
imagepng($image, $photo); //png file
break;
default:
return false;
break;
}
//imagejpeg($image, $photo); //zapisuje obrazek juz ze znakiem wodnym
imagedestroy($image);
imagedestroy($watermark);
}