关闭

php合成或者创建gif动画

标签: phpfunction图片
1009人阅读 评论(0) 收藏 举报
分类:
1. 首先需要确认GD库是否正常。
 
2. 如果是合成图片,请确保把分解的图片放在frames的文件夹里面。
 

3. GIFEncoder.class.php 类

<?php
include "GIFEncoder.class.php";

ob_start();
$board_width = 60;
$board_height = 60;
$pad_width = 5;
$pad_height = 15;
$ball_size = 5;
$game_width = $board_width - $pad_width*2 - $ball_size;
$game_height = $board_height-$ball_size;

$x = 0;
$y = rand(0,$game_height);
$xv = rand(1,10);
$yv = rand(1,10);
$pt[] = array($x,$y);
do{
        $x += $xv;
        $y += $yv;
        if($x > $game_width){
                $xv = -1*$xv;
                $x = $game_width - ($x-$game_width);
        }elseif($x < 0){
                $xv = -1*$xv;
                $x = abs($x);
        }
        if($y>$game_height){
                $yv = -1*$yv;
                $y = $game_height - ($y - $game_height);
        }elseif($y<0){
                $yv = -1*$yv;
                $y = abs($y);
        }
        $pt[] = array($x,$y);
}while($x!=$pt[0][0]||$y!=$pt[0][1]);

$i = 0;
while(isset($pt[$i])){
        $image = imagecreate($board_width,$board_height);
        imagecolorallocate($image, 0,0,0);
        $color = imagecolorallocate($image, 255,255,255);
        $color2 = imagecolorallocate($image, 255,0,0);
        
        if($pt[$i][1] + $pad_height < $board_width){
                imagefilledrectangle($image,0,$pt[$i][1],$pad_width, $pt[$i][1]+$pad_height,$color);
        }else{
                imagefilledrectangle($image,0,$board_width-$pad_height,$pad_width, $board_width,$color);
        }
        imagefilledrectangle($image,$board_width-$pad_width,0,$board_width, $board_height,$color2);
        imagefilledrectangle($image,$pad_width+$pt[$i][0], $ball_size+$pt[$i][1]-$ball_size, $pad_width+$pt[$i][0]+$ball_size, $ball_size+$pt[$i][1],$color);
        //imagesetpixel($image,$pt[$i][0],$pt[$i][1],$color);
        imagegif($image);
        imagedestroy($image);
        $imagedata[] = ob_get_contents();
        ob_clean();
        ++$i;
}

$gif = new GIFEncoder(
                            $imagedata,
                            100,
                            0,
                            2,
                            0, 0, 1,
                            "bin"
        );
        
Header ('Content-type:image/gif');
echo $gif->GetAnimation();
?>


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:176277次
    • 积分:2278
    • 等级:
    • 排名:第17080名
    • 原创:35篇
    • 转载:111篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论