Login   Register  
PHP Classes
elePHPant
Icontem

File: src/PHPVideoToolkit/AnimatedGifTranscoderPhp.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Oliver Lillie  >  PHP Video Toolkit  >  src/PHPVideoToolkit/AnimatedGifTranscoderPhp.php  >  Download  
File: src/PHPVideoToolkit/AnimatedGifTranscoderPhp.php
Role: Class source
Content type: text/plain
Description: Class source
Class: PHP Video Toolkit
Manipulate and convert videos with ffmpeg program
Author: By
Last change: updated copy right years and a incorrect version number
updated version number in class files
Date: 7 months ago
Size: 2,440 bytes
 

Contents

Class file image Download
<?php
    
    
/**
     * This file is part of the PHP Video Toolkit v2 package.
     *
     * @author Oliver Lillie (aka buggedcom) <publicmail@buggedcom.co.uk>
     * @license Dual licensed under MIT and GPLv2
     * @copyright Copyright (c) 2008-2014 Oliver Lillie <http://www.buggedcom.co.uk>
     * @package PHPVideoToolkit V2
     * @version 2.1.1
     * @uses ffmpeg http://ffmpeg.sourceforge.net/
     */
     
    
namespace PHPVideoToolkit;
     
    use 
GifCreator
     
    
/**
     * This class provides generic data parsing for the output from FFmpeg.
     *
     * @access public
     * @author Oliver Lillie
     * @author Jorrit Schippers
     * @package default
     */
    
class AnimatedGifTranscoderPhp extends AnimatedGifTranscoderAbstract
    
{
        
/**
         * Saves the animated gif.
         *
         * @access public
         * @author Oliver Lillie
         * @param string $save_path
         * @param float $frame_delay The delay of each frame.
         * @return Image
         */
        
public function save($save_path$frame_delay=0.1)
        {
            
parent::save($save_path$frame_delay);
            
//          build the gif creator process
            
require_once dirname(dirname(dirname(__FILE__))).'/vendor/sybio/gif-creator/src/GifCreator/GifCreator.php';
            
$gc = new \GifCreator\GifCreator();
            
//          add in all the frames
            
$durations = array();
            
$frame_duration $frame_delay*100;
            foreach (
$this->_frames as $path)
            {
                
array_push($durations$frame_duration);
            }
            
$gc->create($this->_frames$durations$this->_loop_count === AnimatedGif::UNLIMITED_LOOPS '0' $this->_loop_count+1);
            
$gif_data $gc->getGif();
            
//          check for errors or put the data into the file.
            
if(empty($gif_data) === true || file_put_contents($save_path$gif_data) === false)
            {
                throw new 
FfmpegProcessPostProcessException('AnimatedGif save using `php` "'.$save_path.'" failed.');
            }
            
            return new 
Image($save_path$this->_config);
        }
        
        public static function 
available(Config $config)
        {
            return 
function_exists('imagegif') && is_file(dirname(dirname(dirname(__FILE__))).'/vendor/sybio/gif-creator/src/GifCreator/GifCreator.php');
        }
    }