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 )