假設我有一個Flash網站,您可以在其中創建化身和一些動作。將Flash電影導出爲可下載的動畫GIF,服務器端
有沒有辦法將這些保存到帶有服務器端語言的動畫GIF中? (PHP是首選)
我環顧四周,我已經得到的所有方法都是用Flash軟件本身來做的。有人試過這個嗎?
在此先感謝。
假設我有一個Flash網站,您可以在其中創建化身和一些動作。將Flash電影導出爲可下載的動畫GIF,服務器端
有沒有辦法將這些保存到帶有服務器端語言的動畫GIF中? (PHP是首選)
我環顧四周,我已經得到的所有方法都是用Flash軟件本身來做的。有人試過這個嗎?
在此先感謝。
有趣的問題。應該可以將動畫的幀作爲位圖數據發送到服務器,並在服務器上組合一個動畫gif。您可能希望動畫非常短,分辨率相當低,這樣才能正常工作。
一些出發點:
這取決於你究竟是如何在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());
?>
糾正我,如果我錯了,但看起來你可以只有使用你的代碼,如果你有訪問的原始GIF。你怎麼能「撕掉」一個Flash視頻並將它變成gif? – Theopile 2011-01-25 19:58:53
你是對的。基於這個問題,我假定這不會成爲障礙。 – 2011-02-01 14:13:04