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*$padding2*$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