如何制作动画图片?

时间:2010-12-03 04:21:58

标签: php animation gif

  

可能重复:
  PHP - Create simple animated GIF from two JPEG images?

我有一个简单的jpg图像。我想创建它的动画图像。

任何人都可以向我推荐任何想法。

我对imagegif()有所了解。但那不是我需要的。我想创建一个从简单的jpg图像移动的图像。可能吗。

任何帮助都非常值得赞赏。

感谢名单

5 个答案:

答案 0 :(得分:0)

只需浏览本网站,上传2,3,4.5张您喜欢的图片进行测序。

试试吧

picasion.com

问候,

<强>瓦西姆

答案 1 :(得分:0)

你可以轻松使用gifmerge类

Try me !

答案 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. 手动创建基于它的多个框架,从一个到另一个的微妙变化(在PHotoshop,GIMP等)
  3. 从编程的角度来看,这些选项中最有趣的是#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。

注意:这个问题已被提出。