PHP Classes

File: src/PHPVideoToolkit/Image.php

Recommend this page to a friend!
  Classes of Oliver Lillie   PHP Video Toolkit   src/PHPVideoToolkit/Image.php   Download  
File: src/PHPVideoToolkit/Image.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: exception error fixes #55
updated exception types thrown

Signed-off-by: Oliver Lillie <buggedcom@gmail.com>
Merge branch 'refs/heads/multiple-output'

Conflicts:
README.md
src/PHPVideoToolkit/ProgressHandlerOutput.php
src/PHPVideoToolkit/ProgressHandlerPortable.php
updated version in source
Date: 1 year ago
Size: 3,279 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.7-beta
     * @uses ffmpeg http://ffmpeg.sourceforge.net/
     */
    
   
namespace PHPVideoToolkit;

   
/**
     * This class provides generic data parsing for the output from FFmpeg from specific
     * media files. Parts of the code borrow heavily from Jorrit Schippers version of
     * PHPVideoToolkit v 0.1.9.
     *
     * @access public
     * @author Oliver Lillie
     * @author Jorrit Schippers
     * @package default
     */
   
class Image extends Media
   
{
        public function
__construct($video_file_path, Config $config=null, ImageFormat $video_input_format=null, $ensure_image_file=true)
        {
           
parent::__construct($video_file_path, $config, $video_input_format);
           
// validate this media file is a image file
           
if($ensure_image_file === true && $this->_validateMedia('image') === false)
            {
                throw new \
LogicException('You cannot use an instance of '.get_class($this).' for "'.$video_file_path.'" as the file is not a image file. It is reported to be a '.$this->readType());
            }
        }
       
       
/**
         * Returns a PHP GD resource of the image.
         *
         * @return GD resource
         * @author Oliver Lillie
         */
       
public function toGdImage()
        {
            return
imagecreatefromstring($this->getMediaPath());
        }
       
       
/**
         * Returns the binary data for the image.
         *
         * @return string
         * @author Oliver Lillie
         */
       
public function toBinaryData()
        {
           
$gd = $this->toGdImage();
            if(
$gd !== false)
            {
               
ob_start();
               
imagegd2($gd);
                return
ob_get_clean();
            }
            return
false;
        }
       
        public function
getDefaultFormatClassName()
        {
            return
'ImageFormat';
        }
       
       
/**
         * Returns any video information about the file if available.
         *
         * @access public
         * @author Oliver Lillie
         * @param boolean $read_from_cache
         * @return mixed Returns an array of found data, otherwise returns null.
         */
       
public function readDimensions($read_from_cache=true)
        {
           
$video_data = parent::readVideoComponent($read_from_cache);
            return
$video_data['dimensions'];
        }
       
       
/**
         * Returns any video information about the file if available.
         *
         * @access public
         * @author Oliver Lillie
         * @param boolean $read_from_cache
         * @return mixed Returns an array of found data, otherwise returns null.
         */
       
public function readFrameRate($read_from_cache=true)
        {
           
$video_data = parent::readVideoComponent($read_from_cache);
            return
$video_data['frame_rate'];
        }
    }