GD-Cairo
view release on metacpan or search on metacpan
t/GD-Cairo.t view on Meta::CPAN
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl GD-Cairo.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
use Test;
BEGIN { plan tests => 2 };
use GD;
use GD::Cairo qw();
ok(1); # If we made it this far, we're ok.
#########################
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
my( $w, $h ) = (400, 700 );
my $gd_cairo = GD::Cairo->new( $w, $h, 1 );
draw_stuff( $gd_cairo );
my $gd_image = GD::Image->new( $w, $h, 1 );
draw_stuff( $gd_image );
my $img = GD::Image->new( $w*2+1, $h, 1 );
my $white = $img->colorAllocate( 255, 255, 255 );
$img->fill(0,0,$white);
$img->setBrush( $gd_image );
$img->setPixel($w/2,$h/2,gdBrushed);
my $cairo_brush = GD::Image->newFromPngData($gd_cairo->png, 1);
$img->setBrush( $cairo_brush );
$img->setPixel($w/2*3+1,$h/2,gdBrushed);
open(my $fh, ">", "examples/rectangle.png") or die $!;
binmode($fh);
print $fh $img->png;
close($fh);
$gd_cairo->writePdf( "examples/test.pdf" );
$gd_cairo->writeSvg( "examples/test.svg" );
ok(1);
sub draw_stuff
{
my( $img ) = @_;
my $white = $img->colorAllocate( 255, 255, 255 );
my $black = $img->colorAllocate( 0, 0, 0 );
my $red = $img->colorAllocate( 255, 0, 0 );
my $blue = $img->colorAllocate( 0, 0, 255 );
$img->fill(0,0,$white);
$img->rectangle( 0, 0, $w-1, $h-1, $black );
$img->rectangle( 25, 25, 75, 75, $black );
$img->arc( 50, 50, 50, 100, 0, 225, $black );
$img->line( 10, 10, 30, 40, $red );
$img->line( 4, 1, 4, 10, $black );
$img->line( 1, 4, 10, 4, $black );
$img->setPixel( 5, 5, $red );
$img->rectangle( 25, 100, 75, 150, $black );
$img->fill(26, 101, $red );
$img->ellipse( 50, 175, 50, 50, $red );
$img->fill( 50, 175, $black );
$img->filledRectangle( 25, 200, 75, 250, $red );
$img->filledArc( 150, 50, 50, 75, 90, 225, $black, gdArc );
$img->filledArc( 150, 125, 50, 75, 90, 225, $black, gdChord );
$img->filledArc( 150, 200, 50, 75, 90, 225, $black, gdEdged );
$img->filledArc( 200, 250, 50, 75, 90, 225, $black, gdEdged|gdNoFill );
$img->filledArc( 200, 50, 50, 75, 225, 360, $black, gdArc );
$img->filledArc( 200, 125, 50, 75, 225, 360, $black, gdChord );
$img->filledArc( 200, 200, 50, 75, 225, 360, $black, gdEdged );
$img->filledArc( 200, 250, 50, 75, 225, 360, $black, gdEdged|gdNoFill );
$img->setAntiAliased( $black );
my $i = 0;
for(qw(openPolygon unclosedPolygon filledPolygon))
{
my $poly = GD::Polygon->new;
$poly->addPt( 275, 25 + $i * 100);
$poly->addPt( 300, 50 + $i * 100);
$poly->addPt( 280, 80 + $i * 100);
( run in 1.172 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )