WideImage 1.0 branch (discontinued)

WideImage Wiki : CustomOperations

MainPage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
Support This Project SourceForge.net Logo
Important notice: the development of WideImage 1.0 branch is discontinued. Please visit http://wideimage.sourceforge.net for the new version of library and documentation.
This web site will remain accessible to serve as documentation for the old versions of the library. For help on migration, please refer to the migration guide.

Custom Image Operations

If you want to use a custom image operation, you only have to declare an operation class somewhere in your code or autoloader. The class has to conform to a few simple rules.

Naming the class

You have to name the class properly: wioOPERATION_NAME, for example wioMyOperation. WideImage will automatically create and use the operation.

Methods

In order for the operation to work, two methods must be defined properly; a parameterless constructor and the execute method.

execute()


Note: The operation isn't supposed to modify the source image, it's supposed to return a newly created and modified image. This is not necessary, but it's a good and expected practice.


Example of an operation

Let's define a simple operation that draws a number of white points at random location on the image.
class wioDrawWhiteDots
{
  function execute($image, $n = 5)
  {
  // make a copy
  $new = $image->copy();
 
  // allocate a white color
  $white = $new->allocateColor(255, 255, 255);
 
  // draw a point $n times
  for ($i = 0; $i < $n; $i++)
  {
    // random position
    $x = rand(0, $image->getWidth() - 1);
    $y = rand(0, $image->getHeight() - 1);
    
    // draw the point
    $new->setRGBAt($x, $y, $white);
  }
  return $new;
  }
}


And now let's use it:
$img = wiImage::load('/path/to/image.png');

// let's do it
$modified = $img->drawWhiteDots();

// let's draw 100 white points instead of 5
$modified = $img->drawWhiteDots(100);

// of course, the custom operation can be chained as well
$modified = $img->resize(200, 200)->drawWhiteDots(70)->rotate(45);

There are no comments on this page. [Add comment]

WideImage - an Object-Oriented PHP Image Library for Image manipulation
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.0841 seconds