<?php
 
/**
 
 * SimpleImage
 
 * @description Class to manipulate with images
 
 * @version 1.0.0
 
 * @copyright (c) 2013 Juraj Puchký - Devtech
 
 * @license GPLv3
 
 * @autor Juraj Puchký - Devtech <[email protected]>
 
 *
 
 */
 
 
class SimpleImage {
 
    public static function load($filename) {
 
        $image_info = getimagesize ( $filename );
 
        $image_type = $image_info [2];
 
        $image = null;
 
        
 
        try {
 
            switch ($image_type) {
 
                case IMAGETYPE_JPEG :
 
                    $image = imagecreatefromjpeg ( $filename );
 
                    break;
 
                case IMAGETYPE_GIF :
 
                    $image = imagecreatefromgif ( $filename );
 
                    break;
 
                case IMAGETYPE_PNG :
 
                    $image = imagecreatefrompng ( $filename );
 
                    break;
 
                default :
 
                    return false;
 
            }
 
        } catch ( Exception $e ) {
 
            error_log ( $e->getMessage () );
 
            return false;
 
        }
 
        return $image;
 
    }
 
    public static function save($image, $filename, $image_type = IMAGETYPE_JPEG, $compression = 75, $permissions = null) {
 
        try {
 
            switch ($image_type) {
 
                case IMAGETYPE_JPEG :
 
                    imagejpeg ( $image, $filename, $compression );
 
                    break;
 
                case IMAGETYPE_GIF :
 
                    imagegif ( $image, $filename );
 
                    break;
 
                case IMAGETYPE_PNG :
 
                    imagepng ( $image, $filename );
 
                    break;
 
                default :
 
                    return false;
 
            }
 
            if ($permissions !== null) {
 
                chmod ( $filename, $permissions );
 
            }
 
        } catch ( Exception $e ) {
 
            error_log ( $e->getMessage () );
 
            return false;
 
        }
 
        
 
        return true;
 
    }
 
    public static function getWidth($image) {
 
        return imagesx ( $image );
 
    }
 
    public static function getHeight($image) {
 
        return imagesy ( $image );
 
    }
 
    public static function resizeToHeight($image, $height) {
 
        $ratio = $height / self::getHeight ( $image );
 
        $width = self::getWidth ( $image ) * $ratio;
 
        return self::resize ( $image, $width, $height );
 
    }
 
    public static function resizeToWidth($image, $width) {
 
        $ratio = $width / self::getWidth ( $image );
 
        $height = self::getheight ( $image ) * $ratio;
 
        return self::resize ( $image, $width, $height );
 
    }
 
    public static function scale($image, $scale) {
 
        $width = self::getWidth ( $image ) * $scale / 100;
 
        $height = self::getheight ( $image ) * $scale / 100;
 
        return self::resize ( $image, $width, $height );
 
    }
 
    public static function resize($image, $width, $height) {
 
        $new_image = imagecreatetruecolor ( $width, $height );
 
        imagecopyresampled ( $new_image, $image, 0, 0, 0, 0, $width, $height, self::getWidth ( $image ), self::getHeight ( $image ) );
 
        return $new_image;
 
    }
 
}
 
 |