В данный момент имеется такая функция, очень хорошо работает с png24, png8, jpeg, а вот с gif имеются проблемы, не со всеми а с некоторыми изображениями, шрифт получается полностью черным, не могу найти причину, может кто сталкивался с подобным?
<?
function watermark($file, $text, $r = 255, $g =255, $b = 255, $alpha_level = 0){
if (file_exists($file)) {
$image = getimagesize($file);
switch ($image[2]) {
case 1:
$img = imagecreatefromgif($file);
$imgext = 'imagegif';
break;
case 2:
$img = imagecreatefromjpeg($file);
$imgext = 'imagejpeg';
break;
case 3:
$img = imagecreatefrompng($file);
$imgext = 'imagepng';
break;
}
$width = imagesx($img);
$height = imagesy($img);
$font = BASEDIR.'gallery/fonts/font2.ttf';
imagealphablending($img, 1);
imagesavealpha($img, 1);
$c = imagecolorallocatealpha($img, $r, $g, $b, $alpha_level);
$bc = imagecolorallocatealpha($img, 128, 128, 128, $alpha_level);
$size = min($width/strlen($text),12);
$box = imagettfbbox ($size, 0, $font, $text);
$x = ($width-$box[4]+$box[0])-4;
$y = (($height-$box[1]+$box[5])+$size)-4;
imagettftext($img, $size, 0, $x+1, $y, $bc, $font, $text);
imagettftext($img, $size, 0, $x-1, $y, $bc, $font, $text);
imagettftext($img, $size, 0, $x, $y+1, $bc, $font, $text);
imagettftext($img, $size, 0, $x, $y-1, $bc, $font, $text);
imagettftext($img, $size, 0, $x, $y, $c, $font, $text);
$imgext($img, $file);
imagedestroy($img);
return true;
}
}