查看: 684|回复: 4

[其他] 【参赛】 php合成或者创建gif动画{PHP}

[复制链接]
  • TA的每日心情

    2015-6-25 12:42
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2014-6-28 10:15:37 | 显示全部楼层 |阅读模式
    【导言】
    1. 首先需要确认GD库是否正常。

    2. 如果是合成图片,请确保把分解的图片放在frames的文件夹里面。

    3. GIFEncoder.class.php 类
    1. <?php
    2. include "GIFEncoder.class.php";

    3. ob_start();
    4. $board_width = 60;
    5. $board_height = 60;
    6. $pad_width = 5;
    7. $pad_height = 15;
    8. $ball_size = 5;
    9. $game_width = $board_width - $pad_width*2 - $ball_size;
    10. $game_height = $board_height-$ball_size;

    11. $x = 0;
    12. $y = rand(0,$game_height);
    13. $xv = rand(1,10);
    14. $yv = rand(1,10);
    15. $pt[] = array($x,$y);
    16. do{
    17.         $x += $xv;
    18.         $y += $yv;
    19.         if($x > $game_width){
    20.                 $xv = -1*$xv;
    21.                 $x = $game_width - ($x-$game_width);
    22.         }elseif($x < 0){
    23.                 $xv = -1*$xv;
    24.                 $x = abs($x);
    25.         }
    26.         if($y>$game_height){
    27.                 $yv = -1*$yv;
    28.                 $y = $game_height - ($y - $game_height);
    29.         }elseif($y<0){
    30.                 $yv = -1*$yv;
    31.                 $y = abs($y);
    32.         }
    33.         $pt[] = array($x,$y);
    34. }while($x!=$pt[0][0]||$y!=$pt[0][1]);

    35. $i = 0;
    36. while(isset($pt[$i])){
    37.         $image = imagecreate($board_width,$board_height);
    38.         imagecolorallocate($image, 0,0,0);
    39.         $color = imagecolorallocate($image, 255,255,255);
    40.         $color2 = imagecolorallocate($image, 255,0,0);
    41.         
    42.         if($pt[$i][1] + $pad_height < $board_width){
    43.                 imagefilledrectangle($image,0,$pt[$i][1],$pad_width, $pt[$i][1]+$pad_height,$color);
    44.         }else{
    45.                 imagefilledrectangle($image,0,$board_width-$pad_height,$pad_width, $board_width,$color);
    46.         }
    47.         imagefilledrectangle($image,$board_width-$pad_width,0,$board_width, $board_height,$color2);
    48.         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);
    49.         //imagesetpixel($image,$pt[$i][0],$pt[$i][1],$color);
    50.         imagegif($image);
    51.         imagedestroy($image);
    52.         $imagedata[] = ob_get_contents();
    53.         ob_clean();
    54.         ++$i;
    55. }

    56. $gif = new GIFEncoder(
    57.                             $imagedata,
    58.                             100,
    59.                             0,
    60.                             2,
    61.                             0, 0, 1,
    62.                             "bin"
    63.         );
    64.         
    65. Header ('Content-type:image/gif');
    66. echo $gif->GetAnimation();
    67. ?>
    复制代码
  • TA的每日心情
    慵懒
    2015-11-28 14:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-7-3 22:07:15 | 显示全部楼层
    GIFEncoder
  • TA的每日心情
    开心
    2015-12-3 13:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-7-4 21:44:38 | 显示全部楼层
    GIFEncoder

    该用户从未签到

    发表于 2019-7-10 22:03:59 | 显示全部楼层
    首先需要确认GD库是否正常。

    该用户从未签到

    发表于 2019-7-10 22:05:17 | 显示全部楼层
    1. 首先需要确认GD库是否正常。
    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2019 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表