1. 首先需要确认GD库是否正常。 2. 如果是合成图片,请确保把分解的图片放在frames的文件夹里面。 3. GIFEncoder.class.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();
- ?>
|