The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use lib qw(./blib/lib ./blib/arch);
use Prima qw(Application ImageViewer Label);
use Image::Magick;
use Prima::Image::Magick qw(:all);

my $p = Prima::Image-> new( width => 10, height => 10);

$p-> begin_paint;
$p-> clear;
$p-> line(0,0,9,9);
$p-> line(0,9,9,0);
$p-> end_paint;

my @types;
my $o = $p-> dup;
$o-> size( 100, 100);
push @types, [ $o, 'linear' ];

my $adaptive = $p-> dup;
$adaptive-> AdaptiveResize( width => 100, height => 100);
push @types, [ $adaptive, 'adaptive' ];

my $gaussian = $p-> dup;
$gaussian-> Resize( width => 100, height => 100, filter => 'Gaussian');
push @types, [ $gaussian, 'gaussian' ];

my $cubic = $p-> dup;
$cubic-> Resize( width => 100, height => 100, filter => 'Cubic');
push @types, [ $cubic, 'cubic' ];

Prima::MainWindow-> new(
	text => 'Prima::Image::Magick demo',
)-> insert( map { 
	[ 'Prima::Label'       => 
		pack  => { expand => 1, fill => 'both' }, 
		text  => "$$_[1] scaling"
	], [ 'Prima::ImageViewer' => 
		pack  => { expand => 1, fill => 'both' }, 
		image => $$_[0]
	] } @types
);

run Prima;