PHP Classes
elePHPant
Icontem

PHP Image Class: Apply several types of image effects

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Info   View files View files (5)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings  
2012-01-28 (3 years ago) RSS 2.0 feedNot yet rated by the usersTotal: 483 All time: 5,501 This week: 1,164Up
Version License PHP version Categories  
php-image-class 1.0GNU General Publi...5.2PHP 5, Graphics
Description Author  

This class can apply several types of image effects.

It can process a queue of effects to apply to images.

Currently it can apply to an image effects like crop, rotate, add a watermark, resize, turn into black and white, apply filters, etc..

Picture of Daniel Kovács
Name: Daniel Kovács <contact>
Classes: 1 package by
Country: Hungary Hungary
Age: ???
All time rank: 303631 in Hungary Hungary
Week rank: 1531 Up14 in Hungary Hungary Up

Details provided by the author  
Image class for basic image redesign.
Author: Daniel Kovacs
Email: kovacsdanielhun@gmail.com
Webiste: kovacsdaniel.blogspot.com
Version: 1.0 beta
Release date: 2012.01.18

Thanks to:
http://www.tuxradar.com/practicalphp/11/2/16 (special algorythms)
http://php.about.com/od/gdlibrary/ss/grayscale_gd.htm (black and white algorythm)

It's in beta version, so there can be bugs, if you find any, or you have some new ideas for functions I should implement, please write to
kovacsdanielhun@gmail.com.

Known Issues:
- This class can only work with gifs and jpegs, and pngs
- scatter bugs a little


Installation:
1. Copy file to your website's folder
2. Include it
3. Set up settings 

    $image = new Image;
    $settings   = array();
    $jobs       = array();
        
    /* Set up settings */
    $settings['original_name']  = 'anyfolder/source.jpeg';
    $settings['new_name']       = 'folder/dest.jpeg';
    
    /* */
    $settings['original_type']  = 'jpeg';
    $settings['new_type']       = 'jpeg';
    
4. Set up jobs 

    /* You need to fill the 'jobs' $jobs with jobs like: */
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "contrast";
    $jobs[0]['contrast'] = 50;  
    
    $jobs[1]['job']     = "duotone";
    $jobs[1]['rplus']   = 10;
    $jobs[1]['gplus']   = 40;
    $jobs[1]['bplus']   = 80; 
    
    $jobs[2]['job']         = 'resize';
    $jobs[2]['width']       = 10;
    $jobs[2]['height']      = 0;
    $jobs[2]['percent']     = 0;
    $jobs[2]['scale']       = 0; 
    
    /* You can have plenty of jobs, just have to increase $jobs[$i] ($i) */
    /* You can see other usable filters and jobs under */
    
    /* To start processing type these: */
    $image->settings = $settings;
    $image->jobs     = $jobs;
    $image->run();
    
5. get image or render image ( when you render an image, after render it destroys the image in memory )

    /* To get image you can use this: */
    $image->image;
    /* or/and */
    $image->render_image();

6. get errors
    $image->errors(); /* array */

Available Jobs:
 
   $jobs[0]['job']          = 'crop'
   $jobs[0]['left']         = 120; (pixels from left)
   $jobs[0]['top']          = 120; (pixels from top)
   $jobs[0]['right']     = 120; (pixels from right)
   $jobs[0]['bottom']    = 120; (pixels from bottom)

 

   $jobs[0]['job']           = "rotate";
   $jobs[0]['angle']         =  0;
   $jobs[0]['background']    =  0;
   $jobs[0]['transparent']   =  0;


    $jobs[0]['job']   = "watermark";
    $jobs[0][0]       = 0;
    $jobs[0][1]       = 0;
    $jobs[0][2]       = "watermark.png";

    $jobs[0]['job']      = "resize";
    $jobs[0]['width']    = 0;
    $jobs[0]['height']   = 0;
    $jobs[0]['percent']  = 0;
    
Available Special Effects (Algorythms)

    $jobs[0]['job']      = "blackwhite";
    
    $jobs[0]['job']      = "interlace";
    
    $jobs[0]['job']      = "screen";
    
    $jobs[0]['job']      = "duotone";
    
    $jobs[0]['job']      = "noise";
    
    $jobs[0]['job']      = "scatter";
    
    $jobs[0]['job']      = "color_reduction";
    
Available Filters:

    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "colorize";
    $jobs[0]['r'] = 255;
    $jobs[0]['g'] = 0;
    $jobs[0]['b'] = 123;
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "brightness";
    $jobs[0]['brightness'] = 80;
      
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "contrast"; 
    $jobs[0]['contrast'] = 50;
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "edgedetect"; 
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "emboss"; 
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "gaussian_blur"; 
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "selective_blur"; 
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "smooth";
    $jobs[0]['smooth']  = -6; /-8 - 8/

    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "negate";
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "mean_removal";    
    
    $jobs[0]['job']     = "filter";
    $jobs[0]['filter']  = "grayscale";
    

    
    Error codes:
    x0000: error: settings or jobs are not set
    x0001: error: image not found
    x0002: image is a null ->no image left /* too many crops */
    x0003: error in arg list 
  Files folder image Files  
File Role Description
Plain text file image.php Class base class
Plain text file readme.txt Doc. readme
Image file test.JPEG Icon test image
Plain text file test.php Example test file
Image file example.png Output Example

 Version Control Unique User Downloads Download Rankings  
 0%Total:483All time:5,501
 This week:0This week:1,164Up