Накладываю водяной знак (PNG) на GIF, получается черный фон вместо прозрачности. Как убрать черный фон?
<?
$f_name = time();
$path_directory = 'avatars/';
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['imgupload']['name'])){
$fil = $_FILES['imgupload']['name'];
$filename = $f_name.".".substr($fil, strrpos($fil, '.') + 1);
$source = $_FILES['imgupload']['tmp_name'];
$target = $path_directory . $filename;
move_uploaded_file($source, $target);
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_directory.$filename) ;
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_directory.$filename) ;
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_directory.$filename);
}
if(imagesx($im) >= 300){
$stamp = imagecreatefrompng('watermark.png');
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, $sx, $sy);
imagejpeg($im, $path_directory.$f_name.".jpg");
if(preg_match('/[.](GIF)|(gif)|(PNG)|(png)$/', $filename)) {
imagejpeg($im, $path_directory.$f_name.".jpg");
unlink($target);
}
}
$w = 250;
$w_src = imagesx($im);
$h_src = imagesy($im);
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
imagejpeg($dest, $path_directory.$f_name."_small.jpg");
$avatar = $path_directory.$f_name."_small.jpg";
}else{
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
echo "<img width='500' src='avatars/".$f_name.".jpg' />";
echo "<br/>";
echo "<img src='avatars/".$f_name."_small.jpg' />";
?>
<br />
<a href="index.php">назад</a>