可能重复:
PHP - Create simple animated GIF from two JPEG images?
我有一个简单的jpg图像。我想创建它的动画图像。
任何人都可以向我推荐任何想法。
我对imagegif()有所了解。但那不是我需要的。我想创建一个从简单的jpg图像移动的图像。可能吗。
任何帮助都非常值得赞赏。
感谢名单
答案 0 :(得分:0)
答案 1 :(得分:0)
你可以轻松使用gifmerge类
答案 2 :(得分:0)
在css文件中使用此代码
-webkit-animation-name:pulse; -webkit-animation-duration:2s; -webkit-animation-iteration-count:无数; -webkit-animation-timing-function:easy-in-out; -webkit-animation-direction:alternate; }
和html
如果你的浏览器是mozilla firedox用moz替换webkit。
玩得开心..
答案 3 :(得分:0)
从问题中寻找的是什么并不完全清楚,但如果您想要的是拍摄单张图片并将其设为动画图片,那么您有以下几种选择:
从编程的角度来看,这些选项中最有趣的是#1(对于#2 - 是的,你只需要像imagegif那样)。
您可以通过PHP通过ImageMagick distortion effects PHP接口使用IMagick到ImageMagick。你想要的是在那里选择一种失真方法(有很多),然后用略微变化的参数对源图像运行几次,以产生不同的帧。在此之后,您可以将结果帧与imagegif()或类似组合。
答案 4 :(得分:0)
这不能用GD完成,但我找到了一个很棒的库。虽然它有点复杂,所以这里有一个链接到库,用PHP制作动画GIF。它解释了如何彻底使用它。 http://www.phpclasses.org/package/3163-PHP-Generate-GIF-animations-from-a-set-of-GIF-images.html
您可以在此处查看我的示例:http://cmon.horizon-host.com/gifs/slideshow_normal.php 在网站上只需选择2张图片,并为宽度和高度写入速度900的100。它将把它们放在动画幻灯片幻灯片中。
以下是该脚本的代码:
<?php
if(isset($_POST['speed']))
{
header('Content-type: image/gif');
if(isset($_POST['download'])){
header('Content-Disposition: attachment; filename="animated.gif"');
}
include('GIFEncoder.class.php');
function frame($image){
ob_start();
imagegif($image);
global $frames, $framed;
$frames[]=ob_get_contents();
$framed[]=$_POST['speed'];
ob_end_clean();
}
foreach ($_FILES["images"]["error"] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
$tmp_name = $_FILES["images"]["tmp_name"][$key];
$im = imagecreatefromstring(file_get_contents($tmp_name));
$resized = imagecreatetruecolor($_POST['width'],$_POST['height']);
imagecopyresized($resized, $im, 0, 0, 0, 0, $_POST['width'], $_POST['height'], imagesx($im), imagesy($im));
frame($resized);
}
}
$gif = new GIFEncoder($frames,$framed,0,2,0,0,0,'bin');
echo $gif->GetAnimation();
}
?>
<form action="" method="post" enctype="multipart/form-data">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="jquery.MultiFile.js"></script>
<script src="jquery.placeholder.js"></script>
<input type="file" name="images[]" class="multi" />
<script>
$(function(){
$('input[placeholder], textarea[placeholder]').placeholder();
});
</script>
<SCRIPT language=Javascript>
<!--
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
//-->
</SCRIPT>
<input name="speed" maxlength="10" type="text" placeholder="Speed of frames in ms" onkeypress="return isNumberKey(event)">
<input name="width" maxlength="4" type="text" placeholder="Width" onkeypress="return isNumberKey(event)">
<input name="height" maxlength="4" type="text" placeholder="Height" onkeypress="return isNumberKey(event)">
<input type="submit" name="download" value="Download!">
<input type="submit" name="preview" value="Preview!">
</form>
如您所见,它引用了第一个链接上的GIFEncoder类。它还使用了一些javascript验证和jQuery multiupload。
注意:这个问题已被提出。