A Scripting Language for Web, Linux and Windows

A Scripting Language for Web, Linux and Windows

Example: Graphics functions

Demonstrates how to create and manipulate images with gd module based on LibGD.

Example 1: Create red PNG image with 100x100 pixel

<?v1

dl 
("gd"); // Load gd module

img imagecreatetruecolor (100100);
red imagecolorallocatealpha (img255,0,0,0);
imagefill (img00red);

// If filename is null then the image will be written to standard output. 
// This is useful to show the image in Web mode.
imagepng(img"red_100x100.png"); 

imagedestroy (img);

?>

Result:

Red PNG image 100x100 pixel

Example 2: Create transparent PNG image and draw a triangle

<?v1

dl 
("gd"); // Load gd module

img imagecreatetruecolor (8060);
black imagecolorallocatealpha (img0,0,0,0);
imagefill (img00black);

// Make background color transparent
imagecolortransparent (imgblack);

// Note: The alpha color 50 (0..127) defines how much the transparent background 
// shines through the color. In this example the transparent background color is 
// black, that means alpha > 0 will make the color darker.
green imagecolorallocatealpha (img0255,050);
red imagecolorallocatealpha (img2550050);
pink imagecolorallocatealpha (img255025550);

// Create a style (brush) with 3 colors
imagesetstyle (img, array (pinkgreenred));

// Set thickness in pixel of drawing functions, 1 = default
imagesetthickness (img10);

// Draw triangle
imageline (img10105050IMG_COLOR_STYLED);
imageline (img50506010red);
imageline (img60101010red);

imagepng(img"transparent_triangle.png"); 

imagedestroy (img);

?>

Result:

Transparent triangle

Example 3: Draw some primitives

<?v1

dl 
("gd"); // Load gd module

img imagecreatetruecolor (300210);
black imagecolorallocatealpha (img0000);
imagefill (img00black);

green imagecolorallocatealpha (img0,25500);
red imagecolorallocatealpha (img255000);
yellow imagecolorallocatealpha (img25525500);

// Set red pixel to 5/5
imagesetpixel (img55red);

// Draw green rectangle fom 10/10 to 100/100
imagerectangle (img1010100100green);

// Draw red circle with center 120/160 and radius 50 pixel
imageellipse (img1201605050red);

// Draw red filled ellipse/oval with center 230/170, width 100, height 50 pixel
imagefilledellipse (img23017010050red);

// Draw green filled arcus from 0 to 300 degree
imagefilledarc (img3016050500300green4);

// Draw red open arcus from 100 to 45 degree
imagearc (img2305510010010045red); 

// Draw yellow filled polygon from position 30/40 to 100/100 to 250/120 
points = array (3040100100250120);
imagefilledpolygon (imgpointscount(points)/2yellow);

imagepng(img"primitives.png"); 

imagedestroy (img);

?>

Result:

Primitives

Example 4: Text with buildin fonts

<?v1

dl 
("gd"); // Load gd module

img imagecreatetruecolor (250115);

green imagecolorallocatealpha (img0,255,0,0);
imagefill (img00green);

black imagecolorallocatealpha (img0,0,0,0);

// LibGD has four buildin fonts with fixed char size
imagestring (img11010utf8_decode ("Tiny, char size ".imagefontwidth(1)."x".imagefontheight(1)), black);
imagestring (img21025utf8_decode ("Small, char size ".imagefontwidth(2)."x".imagefontheight(2)), black);
imagestring (img31045utf8_decode ("Bold, char size ".imagefontwidth(3)."x".imagefontheight(3)), black);
imagestring (img41065utf8_decode ("Big, char size ".imagefontwidth(4)."x".imagefontheight(4)), black);
imagestring (img51087utf8_decode ("Bold, char size ".imagefontwidth(5)."x".imagefontheight(5)), black);

// Draw text from bottom to top
imagestringup (img422090utf8_decode ("My Text up"), black);

imagepng(img"imagetext.png"); 

imagedestroy (img);

?>

Result:

Image text

Example 5: Text with true type front

<?v1

dl 
("gd"); // Load gd module

img imagecreatetruecolor (290190);

green imagecolorallocatealpha (img0,255,0,0);
imagefill (img00green);

black imagecolorallocatealpha (img0,0,0,0);

angle 0.5// Radiant
ttfFilename "Arial.ttf";
fontSize 15;
30;
150;
imagettftext  (imgfontSizeanglexyblackttfFilename
    
utf8_decode ("This true type text is rotated\r\nand can have multiple lines"));

imagepng(img"imagetext_truetype.png"); 

imagedestroy (img);

?>

Result:

Image true type font

Example 6: Load and rotate image

<?v1

dl 
("gd"); // Load gd module

// Load image from file
img imagecreatefromfile ("v1_logo.png");

red imagecolorallocatealpha (img255000);

// Rotate 22.5 degrees to right with red background
img2 imagerotate (img, -25.5red);

imagefile (img"image_rotate.png"); 

?>

Result:

Rotated image

Example 7: Effects on images

<?v1

dl 
("gd"); // Load gd module

// Load image from file
img imagecreatefromfile ("v1_logo.png");

// Set brightsness to darker
imagefilter (imgIMG_FILTER_BRIGHTNESS, -100);

imagefile (img"image_brightness.png"); 

?>

Result:

Darken image

More effects on images see PHP compatible function: image_filter()

Example 8: Crop images

<?v1

dl 
("gd"); // Load gd module

// Load image from file
img imagecreatefromfile ("v1_logo.png");

// Crop image area
img2 imagecrop (img, array ("x"=>15"y"=>20"width"=>80"height"=>75));

imagefile (img2"image_crop.png"); 

?>

Result:

Cropped image

back to Home