add new comparison method rgb_difference that resembles arithmetical difference per...
[imager.git] / bench / makegrad.perl
1 #!perl -w
2 use Imager;
3
4 =head1 NAME
5
6 makegrad.perl - builds a large gradient image for quant.c benchmarking
7
8 =head1 SYNOPSIS
9
10   perl makegrad.perl
11
12 =cut
13
14 # a trans2 script to produce our pretty graduation
15 my $hsv = <<'EOS';
16 y cy - x cx - atan2 pi / 180 * !hue
17 1 1 x cx / y cy / distance !sat
18 @hue @sat 1 hsv
19 EOS
20
21 my $img = Imager::transform2({rpnexpr=>$hsv, width=>600, height=>600})
22   or die "transform2 failed: $Imager::ERRSTR";
23
24 $img->write(file=>'hsvgrad.png', type=>'png')
25   or die "Write to hsvgrad.png failed: ", $img->errstr;
26
27 # trans2 code to produce RGB tiles
28 my $rgb = <<'EOS';
29 8 !tilesper
30 w @tilesper / !tilex
31 h @tilesper / !tiley
32 x @tilex % @tilex / 255 * !red
33 y @tiley % @tiley / 255 * !green 
34 x @tilex / int 
35 y @tiley / int @tilesper * + @tilesper @tilesper * / 255 * !blue
36 @red @green @blue rgb
37 EOS
38 $img = Imager::transform2({rpnexpr=>$rgb, width=>600, height=>600})
39   or die "transform2 failed: $Imager::ERRSTR";
40 $img->write(file=>'rgbtile.png', type=>'png')
41   or die "write to rgbtile failed: ",$img->errstr;