假设我有一个Flash网站,您可以在其中创建一个头像和一些动作。
有没有办法将它们保存为带有服务器端语言的动画GIF? (php是首选)
我环顾四周,我所拥有的只是用Flash软件本身做到的方法。有没有人试过这个?
提前致谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
有趣的问题。应该可以将动画的帧作为bitmapdata发送到服务器并在服务器上组合动画gif。你可能希望动画很短,分辨率相当低,因此效果不错。
一些起点:
答案 2 :(得分:1)
这取决于您在Flash中如何创建头像。巧合的是,我的小组开发了一个类似的演示应用程序。它被称为FunIcons,您可以选择一个角色然后通过用鼠标在脸上绘制路径来创建动画(按住鼠标按钮来执行此操作),然后单击“保存”按钮,您将获得一个动画gif,其中包含您刚刚绘制的序列。
技巧很简单:服务器端的PHP脚本采用构建动画的GIF文件序列,并从中构建动画GIF。这是脚本本身:
<?php
header ("Content-type: image/gif");
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
header ("Content-Disposition: attachment; filename=\"funicons.gif\"");
require_once "GifBuilder/GIFEncoder.class.php";
$path = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"];
$i = strrpos($path, "/");
$path = substr($path, 0, $i+1);
$images = split(",", $_REQUEST["images"]);
$prevUrl = "";
while (list ($key, $val) = each($images))
{
if (substr($val, 0, strlen($path)) == $path) $val = substr($val, strlen($path));
if ($val == $prevUrl)
{
$delay[count($delay)-1] += 10;
} else {
$frames[] = file_get_contents($val);
$delay[] = 10;
$prevUrl = $url;
}
@set_time_limit(30);
}
$gif = new GIFEncoder ( $frames, $delay, 0, 2, -1, -1, -1, "bin" );
print($gif->GetAnimation());
?>