Commit | Line | Data |
---|---|---|
35574351 TC |
1 | Copyright 2000, Anthony Cook. All rights reserved. |
2 | This program is free software, you can redistribute it and/or | |
3 | modify it under the same terms as Perl itself. | |
4 | ||
5 | ||
6 | What is it? | |
7 | =========== | |
8 | ||
9 | Imager::Graph is intended to produce good looking graphs with a | |
10 | minimum effort on the part of the user. Hopefully I've managed that. | |
11 | ||
12 | Currently only the pie graph class, Imager::Graph::Pie, is provided. | |
13 | ||
14 | ||
15 | Imager | |
16 | ====== | |
17 | ||
18 | Imager::Graph can push the limits of the capabilities that Imager | |
19 | provides, the default "style" will work with Imager 0.38, but the | |
20 | other default styles require current CVS or Imager 0.39 when it is | |
21 | released. Note that current CVS includes bug fixes that may have an | |
22 | effect on the appearance of the final output. | |
23 | ||
24 | Once you have Imager installed, and an appropriate font, Imager::Graph | |
25 | should just work, there are no other dependencies. | |
26 | ||
27 | ||
28 | Fonts | |
29 | ===== | |
30 | ||
31 | For best results you will need one or more attractive fonts, and one | |
32 | of the outline font libraries that Imager supports. The ImUgly font | |
33 | is supplied with Imager::Graph, but it is fairly ugly, so probably | |
34 | isn't useful if you want nice output. | |
35 | ||
36 | ||
37 | Installation | |
38 | ============ | |
39 | ||
40 | Imager::Graph follows the normal perl module installation process: | |
41 | ||
42 | perl Makefile.PL | |
43 | make | |
44 | make test | |
45 | make install | |
46 | ||
47 | Please Note: don't be too suprised if you get test failures, | |
48 | unfortunately minor changes in the image can result in large changes | |
49 | in the measure I use to check the results. If you get test failures | |
50 | please check the results in testout/ | |
51 | ||
52 | The tests require PNG file format and TrueType font format support. | |
53 | ||
54 | Creating Graphs | |
55 | =============== | |
56 | ||
57 | The aim is to make things as simple as possible, if you have some data | |
58 | you can create a pie chart with: | |
59 | ||
60 | use Imager::Graph::Pie; | |
61 | ||
62 | my $font = Imager::Font->new(file=>$fontfile) | |
63 | or die "Cannot create font: ",Imager->errstr; | |
64 | my $pie_graph = Imager::Graph::Pie->new(); | |
65 | my $img = $pie_graph->draw(data=>\@data); | |
66 | ||
67 | If you want to add a legend, you need to provide some descriptive text | |
68 | as well: | |
69 | ||
70 | my $img = $pie_graph->draw(data=>\@data, labels=>\@labels, font=>$font, | |
71 | features=>'legend'); | |
72 | ||
73 | You might want to add a title instead: | |
74 | ||
75 | my $img = $pie_graph->draw(data=>\@data, font=>$font, title=>'MyGraph'); | |
76 | ||
77 | or instead of a legend, use callouts to annotate each segment: | |
78 | ||
79 | my $img = $pie_graph->draw(data=>\@data, labels=>\@labels, | |
80 | features=>'allcallouts', font=>$font); | |
81 | ||
82 | (The following graphs use features introduce after Imager 0.38.) | |
83 | ||
84 | If you want draw a monochrome pie graph, using hatched fills, specify | |
85 | the 'mono' style: | |
86 | ||
87 | my $img = $pie_graph->draw(data=>\@data, style=>'mono'); | |
88 | ||
89 | The 'mono' style produces a 1 channel image by default, so if you want | |
90 | to add some color you need to reset the number of channels, for | |
91 | example, you could change the drawing color to red: | |
92 | ||
93 | my $img = $pie_graph->draw(data=>\@data, style=>'mono', | |
94 | fg=>'FF0000', channels=>3); | |
95 | ||
96 | ||
97 | If you're feeling particularly adventurous, you could create a graph | |
98 | with a transparent background, suitable for compositing onto another | |
99 | image: | |
100 | ||
101 | my $img = $pie_graph->draw(data=>\@data, style=>'mono', | |
102 | bg=>'00000000', channels=>4); | |
103 | ||
104 | If you only want the background of the graph to be transparent, while leaving other parts of the chart opaque, use the back option: | |
105 | ||
106 | my $img = $pie_graph->draw(data=>\@data, style=>'mono', | |
107 | back=>'00000000', channels=>4); | |
108 | ||
109 | or you could make the background an image based fill: | |
110 | ||
111 | my $img = $pie_graph->draw(data=>\@data, style=>'mono', channels=>4, | |
112 | back=>{ image=>$otherimage } ); | |
113 | ||
114 | If you want a "prettier" image, you could use one of the fountain fill | |
115 | based styles: | |
116 | ||
117 | my $img = $pie_graph->draw(data=>\@data, style=>'fount_lin'); | |
118 | ||
119 | The image you receive from Imager::Graph is a normal Imager image, | |
120 | typically an 8-bit/sample direct color image, though options to extend | |
121 | that may be introduced in the future. | |
122 | ||
123 | ||
124 | Portability | |
125 | =========== | |
126 | ||
127 | Imager::Graph should work on any system that Imager works on. | |
128 | ||
129 | ||
130 | More Information | |
131 | ================ | |
132 | ||
133 | If you have queries about Imager::Graph, please email me at | |
134 | tony@develop-help.com. | |
135 | ||
136 | A PPM compatible version of this module should be available from | |
137 | http://ppd.develop-help.com/. | |
138 | ||
139 | Thanks go to Addi for Imager. | |
140 | ||
141 |