Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to adjust height of animated GIF file using PHP

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 155
    Comment on it

    First of all you just have to create 3 folder name
    1.frame_output
    2.images
    3.resized_frame_output
    Now download encoder and decoder class from this below link
    here.

    And Download class "GIFDecoder.class.php", Download class "GIFEncoder.class.php" from here

    and then run the script name as "resize_animator.php" , create a upload html file & Let Enjoy the script.

    Now save this script as index.php

    <html>
    <body>
    <table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
    <tr>
    <form action="resize_animator.php" method="post" enctype="multipart/form-data" >
    <td>
    <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
    <tr>
    <td align="center"><font face="Tahoma">SELECT ANIMATED FILE</font> 
    <input type="file" name="uploadfile" size="20" accept="image/gif"/>
    </td>
    </tr>
    <tr>
    <td align="center"><input type="submit" name="Submit" value="PROCESS ANIMATION" /></td>
    </tr>
    </table>
    </td>
    </form>
    </tr>
    </table>
    </body>
    </html>
    

    Now create another file as save it as resize_animator.php and paste the following code:-

     <?php
    
       require "GIFDecoder.class.php";
       include "GIFEncoder.class.php";
       $file_name= $_FILES['uploadfile']['name'];
       $file_ext = substr($file_name, -4);
       $file_size=($_FILES["uploadfile"]["size"] /1024 );
       if($file_ext=='.gif')
        {
     if($file_size > 0 && $file_size < 2000 )
      {
        session_start ( );
            $uploaded_file = $_FILES['uploadfile']['tmp_name'];
            $fp=file_get_contents($uploaded_file);
    
            if ( $fp )
                {
                    $_SESSION['delays'] = Array ( );
                    $gif = new GIFDecoder ( $fp );
                    $arr = $gif->GIFGetFrames ( );
                    $_SESSION [ 'delays' ] = $gif -> GIFGetDelays ( );
    
                    for ( $i = 0; $i < count ( $arr ); $i++ )
                    {
                            fwrite ( fopen ( ( $i < 10 ? "frame_output/$i$i_frame.gif" : "frame_output/$i_frame.gif" ), "wb" ), $arr [ $i ] );
                    }
              }
    
            function resize_frames($newwidth,$newheight)
                {
                        $dir=opendir("frame_output/");
                        $i=0;
                        while($imgfile=readdir($dir))
                        {
                             if ($imgfile != "." && $imgfile!="..")
                                 {
                                            $imgarray[$i]=$imgfile;
                                            $uploadedfile = "frame_output/".$imgarray[$i];
                                            $src = imagecreatefromgif($uploadedfile);
                                            list($width,$height)=getimagesize($uploadedfile);
                                            $tmp=imagecreatetruecolor($newwidth,$newheight);
                                            imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
                                            $filename = "resized_frame_output/".$imgarray[$i];
                                            imagegif($tmp,$filename,100);
                                            imagedestroy($src);
                                            imagedestroy($tmp);
                                            $i++;
                                }
                        }
                        closedir($dir);
    
                    if ( $dh = opendir ( "resized_frame_output/" ) )
                    {
                        while ( false !== ( $dat = readdir ( $dh ) ) )
                        {
                            if ( $dat != "." && $dat != ".." )
                            {
                                $frames [ ] = "resized_frame_output/$dat";
                            }
                        }
                        closedir ( $dh );
                    }
    
                $gif = new GIFEncoder   ( $frames,$_SESSION [ 'delays' ],0, 2, 0, 0, 0,"url" );
                $data = $gif->GetAnimation ( );
    
                $x='x';
                $y='_';
                $uploaded_file_name= $_FILES['uploadfile']['name'];
                $actual_file_name = substr($uploaded_file_name, 0, -4);
                $file_extention = substr($uploaded_file_name, -4);
                $new_name=$actual_file_name.$y.$newwidth.$x.$newheight.$file_extention ;
    
                //$output_image_name=$newwidth.$x.$newheight;
                fwrite ( fopen ( "images/$new_name", "wb" ), $data );
                //remove resized frames from folder
                //sleep for 1 second
                // usleep(2000000);
                $dir = 'resized_frame_output/';
                foreach(glob($dir.'*.*') as $v)
                    {
                     unlink($v);
                    }
            }  // end of function resize_frames
    
    
                $gif = new GIFEncoder   ( $frames,$_SESSION [ 'delays' ],0, 2, 0, 0, 0,"url" );
                $data = $gif->GetAnimation ( );
    
                $x='x';
                $y='_';
                $z='_p';
                $uploaded_file_name= $_FILES['uploadfile']['name'];
                $actual_file_name = substr($uploaded_file_name, 0, -4);
                $file_extention = substr($uploaded_file_name, -4);
                $new_name=$actual_file_name.$y.$newwidth.$x.$newheight.$z.$file_extention ;
    
                //$output_image_name=$newwidth.$x.$newheight;
                fwrite ( fopen ( "images/$new_name", "wb" ), $data );
                //remove resized frames from folder
                //sleep for 1 second
                 //usleep(2000000);
                $dir = 'resized_frame_output/';
                foreach(glob($dir.'*.*') as $v)
                    {
                     unlink($v);
                    }
            }  // end of function resize_frames
    
                resize_frames(110,110);
                resize_frames(120,160);
                resize_frames(120,80);
                resize_frames(128,96);
                resize_frames(128,128);
                resize_frames(208,208);
                resize_frames(208,320);
    
                session_destroy();
    
                //usleep(200000);
    
                //remove resized frames from folder
                $dir = 'frame_output/';
                foreach(glob($dir.'*.*') as $v)
                    {
                     unlink($v);
                    }
          echo "<center><h1>Your Animation processing is compleated.</h1></center>";
          echo "<center><h2><a href=\"index.php\">BACK TO UPLOAD PAGE</h2></center>";
      }  //end of file size checker
    else
     {
          echo "<center><h2>You Upload a unfit size image .Upload a file within 2000 KB</h2></center>";
          echo "<center><h2><a href=\"index.php\">BACK TO UPLOAD PAGE</h2></center>";
     }
       } //end of file extention checker
      else
      {
       echo "<center><h2>Uplaod a gif file!</h2></center>";
       echo "<center><h2><a href=\"index.php\">BACK TO UPLOAD PAGE</h2></center>";
      }
      ?>
    

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: