Source:

<?php

/*
 * This example draws a variety of shapes on an otherwise black image.
 * Demonstrates draw/filled rectangles, polygins, cliprects, ellipses, etc.
 */

require './class.ImlibImage.php';
require './class.ImlibColor.php';
require './class.ImlibText.php';
require './class.ImlibCliprect.php';
require './class.ImlibDraw.php';
require './class.ImlibPoly.php';

$im = new ImlibImage();
$im->create(225,260);
$outlinecolor = Array(255,0,0,255);
$color = Array(255,127,0,255);

$box = new ImlibDraw();
$box->set_image($im->get_id());
$box->set_color_array($outlinecolor);
$box->draw_rectangle(7,7,106,56);
$box->set_color_array($color);
$box->fill_rectangle(10,10,100,50);

$poly = new ImlibPoly();
$poly->new_poly();
$poly->set_image($im->get_id());
$poly->set_color(255,0,255,255);
$poly->add_point(100,100);
$poly->add_point(215,110);
$poly->add_point(150,215);
$poly->add_point(102,255);

// The cliprect will leave a gap in the middle of this polygon
$poly->set_cliprect(100,50,125,110);    // Draw the top
$poly->draw();
$poly->set_cliprect(100,190,125,70);    // Draw the bottom
$poly->draw();
$poly->free();

$poly->set_cliprect(0,0,0,0);    // Turns off the clipping rectangle
$poly->new_poly();
$poly->set_color(255,255,255,255);
$poly->add_point(106,106);
$poly->add_point(205,115);
$poly->add_point(147,211);
$poly->add_point(106,245);

$poly->draw();
$poly->free();

// This will draw a few pseudo-randomly colored ellipses
$j = 30;
for ($i = 90; $i < 260; $i += 20)
{
   $box->set_color($i,$i*2,255-$i*2,255);
   $box->draw_ellipse($j,$i,10,$j/2);
   $j += 20;
   if ($j > 70)
      $j = 25;
}

header("Content-Type:image/png");
$im->dump();
$im->free();

?>


Source:

<?php

/*
 * This example takes a source image and outputs an image with four
 * scaled copies of the image.  The original, and the image flipped
 * using the three flip functions: horizontal, vertical, and diagonal.
 *
 * The images are labeled using the ImlibText class, and a background
 * is filled behind them using a filled rectangle from the ImlibDraw class.
 */

require './class.ImlibImage.php';
require './class.ImlibColor.php';
require './class.ImlibCliprect.php';
require './class.ImlibDraw.php';
require './class.ImlibText.php';

$padding = 20;
$thumbw = 170;
$thumbh = '';    // If this is left blank, the height will be calculated
$bgarray = Array(220,115,115,255);
$textarray = Array(255,255,255,255);
$srcname = './lain-closetheworld.png';

// $mode can be 'horizontal', 'vertical', or 'diagonal'
function flipCreate($obj,$mode)
{
   $cb = "flip_$mode";
   $obj->$cb();
   $new = $obj->create_clone();
   $obj->$cb();
   return $new;
}

$im = new ImlibImage();
$im->load($srcname);
$orig = $im->create_scaled($thumbw,$thumbh);
$im->free();
$imw = $orig->get_width();
$imh = $orig->get_height();

// Create the image large enough to fit four scaled copies of $srcname
$dst = new ImlibImage();
$dst->create(2*$imw + 3*$padding, 2*$imh + 5*$padding);

// Load in a font and set the color and image to draw on
$txt = new ImlibText();
$txt->set_color_array($textarray);
$txt->set_image($dst->get_id());
$txt->load('','arial',16);

// Get a drawing object and set its color and image to draw on
$box = new ImlibDraw();
$box->set_color_array($bgarray);
$box->set_image($dst->get_id());

$orig_alpha = $orig->has_alpha();
$box->fill_rectangle($padding-3,$padding-3, $imw+6,$imh+6);
$txt->draw($padding,$padding+$imh,'Original');
$orig->blend_onto_image($dst->get_id(),0,0,$orig_alpha,$imw,$imh,
                        $padding,$padding, $imw,$imh,0,$orig_alpha,0);

$horiz = flipCreate($orig,'horizontal');
$horiz_alpha = $horiz->has_alpha();
$box->fill_rectangle(2*$padding-3+$imw,$padding-3, $imw+6,$imh+6);
$txt->draw(2*$padding+$imw,$padding+$imh,'Horizontal');
$horiz->blend_onto_image($dst->get_id(),0,0,$horiz_alpha,$imw,$imh,
                         2*$padding+$imw,$padding, $imw,$imh,0,$horiz_alpha,0);

$vert = flipCreate($orig,'vertical');
$vert_alpha = $vert->has_alpha();
$box->fill_rectangle($padding-3,3*$padding-3+$imh, $imw+6,$imh+6);
$txt->draw($padding,3*$padding+2*$imh,'Vertical');
$vert->blend_onto_image($dst->get_id(),0,0,$vert_alpha,$imw,$imh,$padding,
                        3*$padding+$imh,$imw,$imh,0,$vert_alpha,0);

// In order to keep things simple, this image will be cropped off if it's
// not square.  This is done to keep things simple.  To show the whole
// diagonally cropped image, the dimensions for $dst would need to be
// calculated from the resulting height of the diagonal version of the image
$diag = flipCreate($orig,'diagonal');
$diag_alpha = $diag->has_alpha();
$box->fill_rectangle(2*$padding-3+$imw,3*$padding-3+$imh, $imw+6,$imh+6);
$txt->draw(2*$padding+$imw,3*$padding+2*$imh,'Diagonal');
$diag->blend_onto_image($dst->get_id(),0,0,$diag_alpha,$imw,$imh,2*$padding+$imw,
                        3*$padding+$imh,$imw,$imh,0,$diag_alpha,0);

header("Content-Type:image/png");
$dst->dump();
$dst->free();

?>


Source:

<?php

/*
 * This example is mostly for playing with color ranges (gradients)
 * and alpha channels.
 */

require './package.Imlib.php';

$red = Array(255,35,35,255);
$blue = Array(35,65,255,255);
$text = Array(200,220,255,255);
$shadow = Array(10,10,10,100);

// Create objects
$im = new ImlibImage;
$cr = new ImlibColorRange;
$d = new ImlibDraw;
$t = new ImlibText;

// Set up objects
$im->create(250,150);
$cr->create();
$cr->set_image($im->get_id());
$d->set_image($im->get_id());
$t->set_image($im->get_id());
$t->load('','comic','20');

// Large blue rectangle and gradient
$d->set_color(22,28,235,255);
$d->fill_rectangle(10,10,210,110);
$cr->add_color_array(0, $red);
$cr->add_color(0,0,225,225,255);
$cr->add_color_array(0, $blue);
$cr->fill_rectangle(15,15,200,100,125);

// Text with semitransparent shadow
$t->set_color_array($shadow);
$t->draw(43,48,'Showing off.');
$t->set_color_array($text);
$t->draw(40,45,'Showing off.');

// Purple semitransparent square
$d->set_color(195,105,195,127);
$d->fill_rectangle(30,90,50,50);

// Green-to-transparent gradient square
$cr->free();
$cr->create();
$cr->add_color(0,0,255,0,0);
$cr->add_color(0,0,255,0,50);
$cr->add_color(0,0,255,0,255);
$cr->fill_rectangle(90,90,50,50,235);

header("Content-Type:image/png");
$im->dump();

?>

Return to the main page