3 use Imager::Graph::Pie;
5 use Imager::Font::Test;
10 use Imager qw(:handy);
14 my $font = Imager::Font::Test->new();
22 my $api_graph = Imager::Graph::Pie->new();
23 $api_graph->add_data_series(\@data, 'Positive Slope');
24 $api_graph->set_style('ocean');
25 $api_graph->set_labels([0 .. 10]);
27 $api_graph->set_image_width(800);
28 $api_graph->set_image_height(600);
29 $api_graph->set_graph_size(500);
30 $api_graph->set_font($font);
31 $api_graph->set_image_background('FF00FF');
32 $api_graph->set_channels(3);
33 $api_graph->set_line_color('00FF00');
34 $api_graph->set_title('Tester Title');
35 $api_graph->set_title_font_size(14);
36 $api_graph->set_title_font_color('444444');
37 $api_graph->set_title_horizontal_align('left');
38 $api_graph->set_title_vertical_align('bottom');
39 $api_graph->set_text_font_size(18);
40 $api_graph->set_text_font_color('FFFFFF');
41 $api_graph->set_graph_background_color('00FF00');
42 $api_graph->set_graph_foreground_color('FF00FF');
43 $api_graph->set_legend_font_color('0000FF');
44 $api_graph->set_legend_font($font);
45 $api_graph->set_legend_font_size(17);
46 $api_graph->set_legend_patch_size(30);
47 $api_graph->set_legend_patch_gap(20);
48 $api_graph->set_legend_horizontal_align('left');
49 $api_graph->set_legend_vertical_align('top');
50 $api_graph->set_legend_padding(5);
51 $api_graph->set_legend_outside_padding(12);
52 $api_graph->set_legend_fill('000000');
53 $api_graph->set_legend_border('222222');
54 $api_graph->set_legend_orientation('horizontal');
55 $api_graph->set_callout_font_color('FF0000');
56 $api_graph->set_callout_font($font);
57 $api_graph->set_callout_font_size(45);
58 $api_graph->set_callout_line_color('FF2211');
59 $api_graph->set_callout_leader_inside_length(10);
60 $api_graph->set_callout_leader_outside_length(20);
61 $api_graph->set_callout_leader_length(30);
62 $api_graph->set_callout_gap(5);
63 $api_graph->set_label_font_color('55FFFF');
64 $api_graph->set_label_font($font);
65 $api_graph->set_label_font_size(16);
66 $api_graph->set_drop_shadow_fill_color('113333');
67 $api_graph->set_drop_shadow_offset(25);
68 $api_graph->set_drop_shadowXOffset(30);
69 $api_graph->set_drop_shadowYOffset(5);
70 $api_graph->set_drop_shadow_filter({ type=>'mosaic', size => 20 });
71 $api_graph->set_outline_color('FF00FF');
72 $api_graph->set_data_area_fills([qw(FF0000 00FF00 0000FF)]);
73 $api_graph->set_data_line_colors([qw(FF0000 00FF00 0000FF)]);
75 my $api_img = $api_graph->draw(
76 features => [qw(legend outline labels)],
77 ) || die $api_graph->error;
81 my $style_graph = Imager::Graph::Pie->new();
83 $style_graph->add_data_series(\@data, 'Positive Slope');
84 $style_graph->set_style('ocean');
85 $style_graph->set_labels([0 .. 10]);
87 my $style_img = $style_graph->draw(
88 features => [qw(legend outline labels)],
89 font => $font, # base font * set_font()
90 back => 'FF00FF', # Background color/fill - set_image_background()
91 size => 500, # Size of the graph * set_size()
92 width => 800, # width of the image * set_width()
93 height => 600, # height of the image * set_height()
94 channels => 3, # # of channels in the image - set_channels()
95 line => '00FF00', # color of lines - set_line_color()
97 text => 'Tester Title', # title for the chart * set_title()
98 size => '14', # size of the title font - set_title_font_size()
99 color => '444444', # color of the title - set_title_font_color()
100 halign => 'left', # horizontal alignment of the title - set_title_horizontal_align()
101 valign => 'bottom', # vertical alignment of the title - set_title_vertical_align()
104 color => 'FFFFFF', # default color of text - set_text_font_color()
105 size => '18', # default size of text - set_text_font_size()
107 bg => '00FF00', # background color of the graph - set_graph_background_color()
108 fg => 'FF00FF', # foreground color of the graph - set_graph_foreground_color()
110 color => '0000FF', # text color for the legend - set_legend_font_color()
111 font => $font, # font to be used for the legend - set_legend_font()
112 size => 17, # font size to be used for labels
113 # in the legend - set_legend_font_size()
114 patchsize => 30, # the size in pixels? percent? - set_legend_patch_size()
115 # of the color patches in
117 patchgap => 20, # gap between the color patches. - set_legend_patch_gap()
118 # in pixels? percent?
119 halign => 'left', # horizontal alignment of the - set_legend_horizontal_align()
120 # legend within the graph
121 valign => 'top', # vertical alignment of the - set_legend_vertical_align()
122 # legend within the graph
123 padding => '5', # the space between the patches - set_legend_padding()
124 # of color and the outside of
126 outsidepadding => '12', # the space between the - set_legend_outside_padding()
127 # border of the legend,
128 # and the outside edge of the
130 fill => '000000', # A fill for the background - set_legend_fill()
132 border => '222222', # The color of the border of - set_legend_border()
134 orientation => 'horizontal', # the orientation of the - set_legend_orientation()
138 color => 'FF0000', # the color of the callout text - set_callout_font_color()
139 font => $font, # the font to use for callouts - set_callout_font()
140 size => 45, # the font size for callout text - set_callout_font_size()
141 line => 'FF2211', # the color of the line from the - set_callout_line_color()
142 # callout to the graph
143 inside => '10', # the length in pixels? of the - set_callout_leader_inside_length()
145 outside => '20', # the other side of the leader? - set_callout_leader_outside_length()
146 leadlen => '30', # the length of the horizontal - set_callout_leader_length()
148 gap => '5', # the space between the callout - set_callout_gap()
149 # leader and the callout text
152 color => '55FFFF', # the color of the label text - set_label_font_color()
153 font => $font, # font used for labels - set_label_font()
154 size => 16, # the font size used for labels - set_label_font_size()
157 fill => '113333', # the color used for drop shadows - set_drop_shadow_fill_color()
158 off => 25, # the offset of the dropshadow... - set_drop_shadow_offset()
159 # in percent? pixels?
160 offx => 30, # horizontal offset of the - set_drop_shadowXOffset()
162 offy => 5, # vertical offset of the dropshadow - set_drop_shadowYOffset()
163 filter => { type=>'mosaic', size => 20 },
165 # the filter description passed to - set_drop_shadow_filter()
166 # Imager's filter method to blur
167 # the drop shadow. Default: an 11
168 # element convolution filter.
171 line => 'FF00FF', # the color of the outline - set_outline_color()
175 qw(FF0000 00FF00 0000FF)
176 # An array ref describing how to fill data areas - set_data_area_fills()
177 # in the graph. used by pie, column, stacked
181 qw(FF0000 00FF00 0000FF)
182 # An array ref of colors, used by line graphs. - set_data_line_colors()
185 ) || die $style_graph->error;
189 my ($api_content, $style_content);
191 $style_img->write(data => \$style_content, type=>'raw') or die "Err: ".$style_img->errstr;
192 $api_img->write(data => \$api_content, type=>'raw') or die "Err: ".$api_img->errstr;
194 open (my $file, ">", '/var/www/tmp/pie_api.tiff');
195 print $file $api_content;
198 ok($style_content eq $api_content);