78 lines
2.3 KiB
Plaintext
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;
|