php合成或者创建gif动画
1. 首先需要确认GD库是否正常。
?
2. 如何是合成图片,请确保把分解的图片放在frames的文件夹里面。
?
3. GIFEncoder.class.php 类
?
?
?
4. 实例 1 合成gif动画:
?
?
?
?
5. 实例 2 创建gif动画:
?
<?phpinclude "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();?>?
?
?
?
6. 全部内容见附件。
?
?
?
?
?