Tugas 1
Buat sebuah image dengan format PNG menggunakan class GD::Simple. Image yang dibuat harus memiliki:- Minimal 10 bentuk (shape) yang berbeda, misalnya kotak, ellipse, garis, lingkaran yang diposisikan dalam canvas sehingga membentuk gambar yang menarik.
- Canvas berukuran minimal 500 x 300 pixel.
- Tulisan dengan 4 jenis font dengan ukuran yang berbeda.
- Minimal 3 dari 10 bentuk yang dibuat dengan warna yang transparent (tidak memiliki isi berwarna).
Source Code
#!/usr/bin/perl -w
use strict;
use GD::Simple;
# create a new image
my $img = GD::Simple->new(600,600);
#skybackground
$img->bgcolor(106,226,244);
$img->fgcolor('black');
$img->rectangle(1,1,599,599);
#sun
$img->fgcolor(255,255,0);
$img->penSize(9);
$img->bgcolor(255,213,0);
$img->moveTo(500,100);
$img->ellipse(100,100);
$img->penSize(3);
# draw a oval
$img->fgcolor('green');
$img->bgcolor(undef);
$img->moveTo(100,60);
$img->ellipse(120,70);
#membuat tulisan
$img->moveTo(60,70);
$img->fgcolor('black');
$img->font('Avdira');
$img->fontsize(20);
$img->string('PEACE');
# membuat smile
$img->penSize('2');
$img->fgcolor('black');
$img->bgcolor('yellow');
$img->moveTo(90,150);
$img->ellipse(100,100);
$img->fgcolor('white');
$img->bgcolor('black');
$img->moveTo(70,140);
$img->ellipse(20,20);
$img->fgcolor('white');
$img->bgcolor('black');
$img->moveTo(110,140);
$img->ellipse(20,20);
$img->fgcolor('black');
$img->penSize('4');
$img->moveTo(113,175);
$img->angle(90);
$img->line(2);
$img->turn(10);
for(my $x=0; $x<18; $x++){
$img->line(4);
}
$img->turn(90);
$img->line(48);
# membuat segitiga
$img->fgcolor('white');
$img->penSize('4');
my $segitiga1 = new GD::Polygon;
$segitiga1->addPt(87,350);
$segitiga1->addPt(27,200);
$segitiga1->addPt(147,200);
$img->polygon($segitiga1);
# membuat segilima
my $segilima = new GD::Polygon;
$segilima->addPt(87,210);
$segilima->addPt(117,225);
$segilima->addPt(107,250);
$segilima->addPt(67,250);
$segilima->addPt(57,225);
$img->polygon($segilima);
# draw a rectangle
$img->fgcolor('black');
$img->bgcolor(undef);
$img->rectangle(200,60,370,150);
$img->moveTo(220,100);
$img->fgcolor('black');
$img->font('Analecta');
$img->string('SAFE');
$img->moveTo(280,125);
$img->fgcolor('black');
$img->font('Comic Sans MS');
$img->fontsize(23);
$img->string('GAZA');
# OK
$img->penSize('2');
$img->fgcolor('black');
$img->bgcolor(undef);
$img->moveTo(450,210);
$img->ellipse(120,80);
$img->fgcolor('black');
$img->moveTo(420,220);
$img->font('Atavyros');
$img->fontsize(31);
$img->string('OK !');
$img->moveTo(87,325);
$img->penSize('5');
$img->fgcolor('black');
$img->lineTo(87,450);
# membuat trapesium
$img->bgcolor(77,199,83);
$img->fgcolor(77,199,83);
my $trapesium = new GD::Polygon;
$trapesium->addPt(350,280);
$trapesium->addPt(430,280);
$trapesium->addPt(480,340);
$trapesium->addPt(300,340);
$img->penSize('3');
$img->polygon($trapesium);
# membuat segienam
my $segienam = new GD::Polygon;
$segienam->addPt(320,320);
$segienam->addPt(340,300);
$segienam->addPt(300,260);
$segienam->addPt(280,250);
$segienam->addPt(250,270);
$segienam->addPt(310,300);
$img->polygon($segienam);
# membuat segilapan
$img->bgcolor(69,126,72);
$img->fgcolor('black');
my $segilapan = new GD::Polygon;
$segilapan->addPt(480,340);
$segilapan->addPt(300,340);
$segilapan->addPt(280,360);
$segilapan->addPt(280,380);
$segilapan->addPt(300,400);
$segilapan->addPt(480,400);
$segilapan->addPt(500,380);
$segilapan->addPt(500,360);
$img->polygon($segilapan);
$img->moveTo(320,370);
$img->lineTo(460,370);
$img->moveTo(320,370);
$img->ellipse(40,40);
$img->moveTo(460,370);
$img->ellipse(40,40);
#ground
$img->bgcolor(139,105,20);
$img->fgcolor(139,105,20);
$img->moveTo(300,600);
$img->ellipse(2000,420);
$img->moveTo(200,230);
$img->font('Eunjin Nakseo');
$img->fgcolor('red');
$img->fontsize(25);
$img->string('STOP');
$img->moveTo(20,520);
$img->font('DkgHandwriting');
$img->fgcolor(0,232,255);
$img->fontsize(50);
$img->string('I LOVE GAZA');
print $img->png;
Output :