您好我想创建一个水印GIF图像。
请检查我的代码:
的 func.php 的
<?php
function allowed_image($file_name){
$allow_set = array('gif','GIF');
$file_ext = (explode('.', $file_name));
$end = end($file_ext);
return (in_array($end , $allow_set) === true) ? true : false;
}
function watermark_image($file, $destination){
$watermark = imagecreatefrompng('logo.png');
$source = getimagesize($file);
$source_mime = $source['mime'];
image = imagecreatefromgif($file);
imagecopy($image, $watermark, 70, 160, 0, 0, imagesx($watermark),imagesy($watermark));
imagepng($image, $destination);
imagedestroy($image);
imagedestroy($watermark);
}
?>
的 test.php的 的
<?php
include('func.php');
if (isset($_FILES['image'])){
$file_name = $_FILES['image']['name'];
$file_tmp = $_FILES['image']['tmp_name'];
$name = explode('.', $file_name);
if (allowed_image($file_name) === true){
$file_name = time() .'.gif';
watermark_image($file_tmp, 'upload/' . $file_name);
} else{
echo '<p>Please upload only gif image.</p>';
}
}
?>
<form enctype="multipart/form-data" method="post">
<input type="file" name="image" /><input type="submit" value="Go" name="submit" />
</form>
以上代码正常运作。但问题是,当我上传GIF图像时,它会创建水印图像,但GIF图像不会动画。
任何人都可以帮助我..如何使用动画GIF创建水印图像?
答案 0 :(得分:0)
嗯,the PHP manual明确指出:
注意: 将动画GIF文件读入内存时,只在图像资源指针中返回第一帧。
在该页面的其中一个注释中,有人提到http://www.gdenhancer.com/是一个很好的替代品,可以使用动画GIF。我自己也没有任何经验。
答案 1 :(得分:0)
经过大量研究,最后我得到了制作水印gif图像的解决方案。
你需要想象力和魔力
试试这段代码会对你有所帮助:
exec("/usr/local/bin/convert mygif.gif null: watermark-logo.png -gravity SouthEast -layers composite -layers optimize mygif.gif 2>&1",$out,$returnval);
由于