/**
  * 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
     $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);
 }
 /**
  * Saves the animated gif.
  *
  * @access public
  * @author Oliver Lillie
  * @param  string $save_path The path to save the animated gif to.
  * @return PHPVideoToolkit\Image Returns a new instance of PHPVideoToolkit\Image with the new animated gif as the src.
  * @throws PHPVideoToolkit\AnimatedGifException If an empty gif is generated.
  * @throws PHPVideoToolkit\AnimatedGifException If the gif couldn't be saved to the filesystem.
  */
 public function save($save_path)
 {
     $save_path = parent::save($save_path);
     //          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 = $this->_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) {
         throw new AnimatedGifException('AnimatedGif using `php` generated an empty gif.');
     }
     if (file_put_contents($save_path, $gif_data) === false) {
         throw new AnimatedGifException('AnimatedGif save to filesystem failed using "' . $save_path . '".');
     }
     return new Image($save_path, $this->_config);
 }