old-www/LDP/LG/issue81/misc/padala/drawing.pl.txt

78 lines
2.3 KiB
Plaintext

#!/usr/local/bin/perl -w
# Change above line to path to your perl binary
##---------------------------------------------------------------------------##
## Author:
## Pradeep Padala, ppadala@cise.ufl.edu
## Description:
## Simple Drawing Example
##---------------------------------------------------------------------------##
## Copyright (C) 2002 Pradeep Padala, ppadala@cise.ufl.edu
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA
##---------------------------------------------------------------------------##
use GD;
do "init_colors.pl";
# Create a new image
$im = new GD::Image(640,400);
# Allocate some colors
&InitColors($im);
# Make the background transparent and interlaced
$im->transparent($white);
$im->interlaced('true');
$x1 = 10;
$y1 = 10;
$x2 = 200;
$y2 = 200;
# Draw a border
$im->rectangle(0, 0, 639, 399, $black);
# A line
$im->line($x1,$y1,$x2,$y2,$red);
# A Dashed Line
$im->dashedLine($x1 + 100, $y1, $x2, $y2, $blue);
# Draw a rectangle
$im->rectangle($x1 + 200, $y1, $x2 + 200, $y2, $green);
# A filled rectangle
$im->filledRectangle($x1 + 400, $y1, $x2 + 400, $y2, $brown);
# A circle
$im->arc($x1 + 100, $y1 + 200 + 100, 50, 50, 0, 360, $violet);
# A polygon
# Make the polygon
$poly = new GD::Polygon;
$poly->addPt($x1 + 200, $y1 + 200);
$poly->addPt($x1 + 250, $y1 + 230);
$poly->addPt($x1 + 300, $y1 + 310);
$poly->addPt($x1 + 400, $y1 + 300);
# Draw it
$im->polygon($poly, $yellow);
# Open a file for writing
open(PICTURE, ">picture.png") or die("Cannot open file for writing");
# Make sure we are writing to a binary stream
binmode PICTURE;
# Convert the image to PNG and print it to the file PICTURE
print PICTURE $im->png;
close PICTURE;