Я не могу пометить файл GIF альфа в php.Можно ли показать прозрачную строку в GIF-файле? - PullRequest
2 голосов
/ 09 марта 2011

У меня проблема с написанием прозрачного водяного знака на Gif-изображении в php.Он пишет, но не показывает прозрачность.У меня есть изображение, на котором есть таблица с информацией, которую я должен пометить в этом файле, чтобы данные, показанные в файле, не мешалиЗначит, водяной знак должен быть прозрачным и видимым.Пожалуйста, помогите мне.Код это что-то вроде этого.

                    $imagesource="pics/2011/temp/15_03.gif";
                    $DestinationFile="pics/2011/15_03.gif";
        $filetype = substr($imagesource,strlen($imagesource)-4,4); 
        $filetype = strtolower($filetype); 
        if($filetype == ".gif")  $image = @imagecreatefromgif($imagesource);  
        if($filetype == ".jpg")  $image = @imagecreatefromjpeg($imagesource);  
        if($filetype == ".png")  $image = @imagecreatefrompng($imagesource);  
        if (!$image) die();         
        $imagewidth = imagesx($image); 
        $imageheight = imagesy($image);         
        $startwidth = (($imagewidth *20)/100); 
        $startheight = $imageheight - ($imageheight*20)/100;
        //imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight); 
        $color   = imagecolorallocatealpha($image, 0, 111, 0,75);
        imagettftext($image,24,60,$startwidth,$startheight,$color,'arial.ttf',"(c)www.Example.com");
        imagejpeg($image,$DestinationFile,85);
        imagedestroy($image); 

1 Ответ

0 голосов
/ 09 марта 2011

Возможно, вам следует создать водяной знак на другом изображении и использовать функцию слияния:

$watermark = @imagecreatetruecolor(120, 20);
$color   = imagecolorallocate($image, 0, 111, 0);
imagettftext($watermark ,24,60,$startwidth,$startheight,$color,'arial.ttf',"(c)www.Example.com");
$image = imagecreatefromjpeg('image.jpg');

imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 70);
...