Branch: Tag:

1999-04-13

1999-04-13 12:32:50 by Mirar (Pontus Hagland) <pike@sort.mirar.org>

Image.image -> Image.Image
Image.colortable -> Image.Colortable
Image.color -> Image.Color
Image.font -> Image.Font

Rev: src/modules/Image/blit.c:1.30
Rev: src/modules/Image/blit_layer_include.h:1.6
Rev: src/modules/Image/colors.c:1.12
Rev: src/modules/Image/colortable.c:1.65
Rev: src/modules/Image/dct.c:1.12
Rev: src/modules/Image/doc-header:1.6
Rev: src/modules/Image/encodings/bmp.c:1.4
Rev: src/modules/Image/encodings/gif.c:1.47
Rev: src/modules/Image/encodings/ilbm.c:1.9
Rev: src/modules/Image/encodings/pnm.c:1.18
Rev: src/modules/Image/encodings/x.c:1.18
Rev: src/modules/Image/encodings/xcf.c:1.6
Rev: src/modules/Image/encodings/xwd.c:1.10
Rev: src/modules/Image/font.c:1.44
Rev: src/modules/Image/image.c:1.128
Rev: src/modules/Image/matrix.c:1.18
Rev: src/modules/Image/operator.c:1.20
Rev: src/modules/Image/orient.c:1.11
Rev: src/modules/Image/pattern.c:1.15
Rev: src/modules/Image/pnm_compat.c:1.2
Rev: src/modules/Image/polyfill.c:1.27
Rev: src/modules/Image/search.c:1.9
Rev: src/modules/Image/togif.c:1.33
Rev: src/modules/Image/x.c:1.21

2286:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref>Image.colortable</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.Colortable'>Image.Colortable</ref></p></text></group>      </doc>   <docgroup homogen-type='method'>
2380:   </doc>   </docgroup>   </module> + <module name='Color'> + <doc> + <text> + <p> + This module keeps names and easy handling + for easy color support. It gives you an easy + way to get colors from names.</p> +  + <p>A color is here an object, containing color + information and methods for conversion, see below.</p> +  + <p><ref resolved='predef::Image.Color'>Image.Color</ref> can be called to make a color object. + <ref resolved='predef::Image.Color'>Image.Color()</ref> takes the following arguments: + <pre> + Image.Color(string name) // "red" + Image.Color(string prefix_string) // "lightblue" + Image.Color(string hex_name) // "#ff00ff" + Image.Color(string cmyk_string) // "%17,42,0,19.4" + Image.Color(string hsv_string) // "%@327,90,32" + Image.Color(int red, int green, int blue) + </pre></p> +  + <p>The color names available can be listed by using indices + on Image.Color. The colors are available by name directly + as <tt>Image.Color.name</tt>, too: + <pre> + ...Image.Color.red... + ...Image.Color.green... + or, maybe + import Image.Color; + ...red... + ...green... + ...lightgreen... + </pre></p> +  + <p>Giving red, green and blue values is equal to calling + <ref resolved='predef::Image.Color.rgb'>Image.Color.rgb</ref>().</p> +  + <p>The prefix_string method is a form for getting modified + colors, it understands all modifiers + (<ref to='image.color.color.light'>light</ref>, + <ref to='image.color.color.dark'>dark</ref>, + <ref to='image.color.color.bright'>bright</ref>, + <ref to='image.color.color.dull'>dull</ref> and + <ref to='image.color.color.neon'>neon</ref>). Simply use + "method"+"color"; (as in <tt>lightgreen</tt>, + <tt>dullmagenta</tt>, <tt>lightdullorange</tt>).</p> +  + <p>The <tt>hex_name</tt> form is a simple + <tt>#rrggbb</tt> form, as in HTML or X-program argument. + A shorter form (<tt>#rgb</tt>) is also accepted. This + is the inverse to the <ref resolved='predef::Image.Color.Color.hex'>Image.Color.Color-&gt;hex</ref>() + method.</p> +  + <p>The <tt>cmyk_string</tt> is a string form of giving + <i>cmyk</i> (cyan, magenta, yellow, black) color. These + values are floats representing percent.</p> +  + <p>The <tt>hsv_string</tt> is another hue, saturation, value + representation, but in floats; hue is in degree range (0..360), + and saturation and value is given in percent. <i>This is not + the same as returned or given to the <ref resolved='predef::Image.Color.hsv'>hsv</ref>() methods!</i></p> +  + <p> + </p> + </text> + <group><note/><text> + <p><tt>Image.Color["something"]</tt> will never(!) generate an error, + but a zero_type 0, if the color is unknown. This is enough + to give the error "not present in module", if used + as <tt>Image.Color.something</tt>, though.</p> +  + <p>If you are using colors from for instance a webpage, you might + want to create the color from <ref resolved='predef::Image.Color.guess'>Image.Color.guess</ref>(), + since that method is more tolerant for mistakes and errors.</p> +  + <p><tt>Image.Color</tt>() is case- and space-sensitive. + Use <ref resolved='predef::Image.Color.guess'>Image.Color.guess</ref>() to catch all variants.</p> +  + <p>and subtract with a space (lower_case(x)-" ") to make + sure you get all variants.</p> +  + <p/> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color.Color.name'>Image.Color.Color-&gt;name</ref>, <ref resolved='predef::Image.Color.Color.rgb'>Image.Color.Color-&gt;rgb</ref>, <ref resolved='predef::Image.Color.Color'>Image.Color.Color</ref>, <ref resolved='predef::Image.Color.guess'>Image.Color.guess</ref>, <ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Colortable'>Image.Colortable</ref></p></text></group> +  + </doc> + <docgroup homogen-type='method'> + <method name='_indices'> +  <returntype> +  <array><valuetype><string/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='_values'> +  <returntype> +  <array><valuetype><object resolved='predef::Image.Color._indices'/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>(ie as <tt>indices(Image.Color)</tt> or <tt>values(Image.Color)</tt>) + <tt>indices</tt> gives a list of all the known color names, + <tt>values</tt> gives there corresponding objects.</p> + </text> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color'>Image.Color</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='rgb'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='red'><type><int/></type></argument> + <argument name='intgreen'><type> +  <object resolved='predef::Image.Color.rgb'/></type></argument> + <argument name='intblue'><type> +  <object resolved='predef::Image.Color.rgb'/></type></argument> +  +  </arguments> + </method><method name='hsv'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='hue'><type><int/></type></argument> + <argument name='intsaturation'><type> +  <object resolved='predef::Image.Color.rgb'/></type></argument> + <argument name='intvalue'><type> +  <object resolved='predef::Image.Color.rgb'/></type></argument> +  +  </arguments> + </method><method name='cmyk'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='c'><type><float/></type></argument> + <argument name='m'><type><float/></type></argument> + <argument name='y'><type><float/></type></argument> + <argument name='k'><type><float/></type></argument> +  +  </arguments> + </method><method name='greylevel'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='level'><type><int/></type></argument> +  +  </arguments> + </method><method name='html'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='html_color'><type><string/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Creates a new color object from given red, green and blue, + hue, saturation and value, or greylevel, in color value range. + It could also be created from <i>cmyk</i> values in percent.</p> +  + <p>The <ref resolved='predef::Image.Color.html'>html</ref>() method only understands the HTML color names, + or the <tt>#rrggbb</tt> form. It is case insensitive. + </p> + </text> + <group><returns/><text> + <p>the created object.</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='guess' homogen-type='method'> + <method name='guess'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument><value>string</value></argument> +  </arguments> + </method><doc> + <text> + <p>This is equivalent to + <tt><ref resolved='predef::Image.Color'>Image.Color</ref>(lower_case(str)-" ")</tt>, + and tries the color with a prepending '#' if no + corresponding color is found. + </p> + </text> + <group><returns/><text> + <p>a color object or zero_type</p> + </text></group> +  + </doc> + </docgroup> + <class name='Color'> + <doc> + <text> + <p>This is the color object. It has six readable variables, + <tt>r</tt>, <tt>g</tt>, <tt>b</tt>, for the <i>red</i>, + <i>green</i> and <i>blue</i> values, + and <tt>h</tt>, <tt>s</tt>, <tt>v</tt>, for + the <i>hue</i>, <i>saturation</i> anv <i>value</i> values.</p> + </text> +  + </doc> + <docgroup homogen-name='`==' homogen-type='method'> + <method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='other_color'><type><object resolved='predef::Image.Color.Color.`=='/></type></argument> +  +  </arguments> + </method><method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='rgb'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='greylevel'><type><int/></type></argument> +  +  </arguments> + </method><method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='name'><type><string/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Compares this object to another color, + or color name. Example: + <pre> + object red=Image.Color.red; + object other=Image.Color. ...; + object black=Image.Color.black; +  + if (red==other) ... + if (red==({255,0,0})) ... + if (black==0) ... + if (red=="red") ... + </pre> + </p> + </text> + <group><returns/><text> + <p>1 or 0</p> + </text></group> + <group><note/><text> + <p>The other datatype (not color object) must be to the right!</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color.Color.`==.rgb'>rgb</ref>, <ref resolved='predef::Image.Color.Color.grey'>grey</ref>, <ref resolved='predef::Image.Color.Color.`==.name'>name</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='light'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='dark'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='neon'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='bright'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='dull'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>Color modification methods. These returns + a new color. + <table> + <tr><th>method</th><th width='50%'>effect</th> + <th>h</th><th>s</th><th>v</th><th>as</th></tr> + <tr><td>light </td><td>raise light level</td><td>±0</td><td> ±0</td><td>+50</td> + <td><image file='predef.Image.Color.Color.light.1.png' height='20' width='20'>colors.c0.png</image> + <image file='predef.Image.Color.Color.light.2.png' height='20' width='20'>colors.c1.png</image> + <image file='predef.Image.Color.Color.light.3.png' height='20' width='20'>colors.c2.png</image> + <image file='predef.Image.Color.Color.light.4.png' height='20' width='20'>colors.c3.png</image></td></tr> +  + <tr><td>dark </td><td>lower light level</td><td>±0</td><td> ±0</td><td>-50</td> + <td><image file='predef.Image.Color.Color.light.5.png' height='20' width='20'>colors.c4.png</image> + <image file='predef.Image.Color.Color.light.6.png' height='20' width='20'>colors.c5.png</image> + <image file='predef.Image.Color.Color.light.7.png' height='20' width='20'>colors.c6.png</image> + <image file='predef.Image.Color.Color.light.8.png' height='20' width='20'>colors.c7.png</image></td></tr> +  + <tr><td>bright</td><td>brighter color </td><td>±0</td><td>+50</td><td>+50</td> + <td><image file='predef.Image.Color.Color.light.9.png' height='20' width='20'>colors.c8.png</image> + <image file='predef.Image.Color.Color.light.10.png' height='20' width='20'>colors.c9.png</image> + <image file='predef.Image.Color.Color.light.11.png' height='20' width='20'>colors.c10.png</image> + <image file='predef.Image.Color.Color.light.12.png' height='20' width='20'>colors.c11.png</image></td></tr> +  + <tr><td>dull </td><td>greyer color </td><td>±0</td><td>-50</td><td>-50</td> + <td><image file='predef.Image.Color.Color.light.13.png' height='20' width='20'>colors.c12.png</image> + <image file='predef.Image.Color.Color.light.14.png' height='20' width='20'>colors.c13.png</image> + <image file='predef.Image.Color.Color.light.15.png' height='20' width='20'>colors.c14.png</image> + <image file='predef.Image.Color.Color.light.16.png' height='20' width='20'>colors.c15.png</image></td></tr> +  + <tr><td>neon </td><td>set to extreme </td><td>±0</td><td>max</td><td>max</td> + <td><image file='predef.Image.Color.Color.light.17.png' height='20' width='20'>colors.c16.png</image> + <image file='predef.Image.Color.Color.light.18.png' height='20' width='20'>colors.c17.png</image></td></tr> +  + </table></p> + </text> + <group><returns/><text> + <p>the new color object</p> + </text></group> + <group><note/><text> + <p>The opposites may not always take each other out. + The color is maximised at white and black levels, + so, for instance + <ref resolved='predef::Image.Color'>Image.Color</ref>.white-&gt;<ref resolved='predef::Image.Color.Color.light'>light</ref>()-&gt;<ref resolved='predef::Image.Color.Color.dark'>dark</ref>() + doesn't give the white color back, but the equal to + <ref resolved='predef::Image.Color'>Image.Color</ref>.white-&gt;<ref resolved='predef::Image.Color.Color.dark'>dark</ref>(), since + white can't get any <ref resolved='predef::Image.Color.Color.light'>light</ref>er.</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='cast' homogen-type='method'> + <method name='cast'> +  <returntype> +  <or><array/><object>string </object></or></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>cast the object to an array, representing red, green + and blue (equal to <tt>-&gt;<ref resolved='predef::Image.Color.Color.rgb'>rgb</ref>()</tt>), or + to a string, giving the name (equal to <tt>-&gt;<ref resolved='predef::Image.Color.Color.name'>name</ref>()</tt>).</p> + </text> + <group><returns/><text> + <p>the name as string or rgb as array</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color.Color.rgb'>rgb</ref>, <ref resolved='predef::Image.Color.Color.name'>name</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='rgb'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='hsv'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='cmyk'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='greylevel'> +  <returntype> +  <object>int </object></returntype> +  <arguments> +  </arguments> + </method><method name='greylevel'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='r'><type><int/></type></argument> + <argument name='intg'><type> +  <object resolved='predef::Image.Color.Color.rgb'/></type></argument> + <argument name='intb'><type> +  <object resolved='predef::Image.Color.Color.rgb'/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>This is methods of getting information from an + <ref resolved='predef::Image.Color.Color'>Image.Color.Color</ref> object.</p> +  + <p>They give an array of + red, green and blue (rgb) values (color value),<br/> + hue, saturation and value (hsv) values (range as color value), <br/> + cyan, magenta, yellow, black (cmyk) values (in percent) <br/> + or the greylevel value (range as color value).</p> +  + <p>The greylevel is calculated by weighting red, green + and blue. Default weights are 87, 127 and 41, respective, + and could be given by argument. + </p> + </text> + <group><returns/><text> + <p>array(int) respective int</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color.Color'>Image.Color.Color</ref>, <ref resolved='predef::Image.Color.Color.grey'>grey</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='create' homogen-type='method'> + <method name='create'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>This is the main <ref resolved='predef::Image.Color.Color'>Image.Color.Color</ref> creation + method, mostly for internal use. + </p> + </text> +  + </doc> + </docgroup> + <docgroup homogen-name='grey' homogen-type='method'> + <method name='grey'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='grey'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='red'><type><int/></type></argument> + <argument name='green'><type><int/></type></argument> + <argument name='blue'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Gives a new color, containing a grey color, + which is calculated by the <ref resolved='predef::Image.Color.Color.greylevel'>greylevel</ref> method.</p> + </text> + <group><returns/><text> + <p>a new <ref resolved='predef::Image.Color.Color'>Image.Color.Color</ref> object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color.Color.greylevel'>greylevel</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='hex'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='hex'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='n'><type><int/></type></argument> +  +  </arguments> + </method><method name='name'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='html'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>Information methods.</p> +  + <p><ref resolved='predef::Image.Color.Color.hex'>hex</ref>() simply gives a string on the <tt>#rrggbb</tt> + format. If <tt>n</tt> is given, the number of significant + digits is set to this number. + (Ie, <tt>n=3</tt> gives <tt>#rrrgggbbb</tt>.)</p> +  + <p><ref resolved='predef::Image.Color.Color.name'>name</ref>() is a simplified method; + if the color exists in the database, the name is returned, + per default is the <ref resolved='predef::Image.Color.Color.hex'>hex</ref>() method use.</p> +  + <p><ref resolved='predef::Image.Color.Color.html'>html</ref>() gives the <tt>HTML</tt> name of + the color, or the <ref resolved='predef::Image.Color.Color.hex'>hex</ref>(2) if it isn't one + of the 16 <tt>HTML</tt> colors. + </p> + </text> + <group><returns/><text> + <p>a new <ref resolved='predef::Image.Color.Color'>Image.Color.Color</ref> object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Color.Color.rgb'>rgb</ref>, <ref resolved='predef::Image.Color.Color.hsv'>hsv</ref>, <ref resolved='predef::Image.Color'>Image.Color</ref></p></text></group> +  + </doc> + </docgroup> + </class> + </module>   <class name='Colortable'>   <doc>   <text>
2392:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.font'>Image.font</ref>, <ref resolved='predef::Image.GIF'>Image.GIF</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.Font'>Image.Font</ref>, <ref resolved='predef::Image.GIF'>Image.GIF</ref></p></text></group>      </doc>   <docgroup homogen-type='method'>
2514:   </text>   <group>    <param name='with'/> - <text><p><ref>colortable</ref> object with colors to add</p></text></group> + <text><p><ref resolved='predef::Image.Colortable'>Colortable</ref> object with colors to add</p></text></group>   <group><returns/><text> - <p>the resulting new <ref>colortable</ref> object</p> + <p>the resulting new <ref resolved='predef::Image.Colortable'>Colortable</ref> object</p>   </text></group>      </doc>
2534:   </text>   <group>    <param name='with'/> - <text><p><ref>colortable</ref> object with colors to subtract</p></text></group> + <text><p><ref resolved='predef::Image.Colortable'>Colortable</ref> object with colors to subtract</p></text></group>   <group><returns/><text> - <p>the resulting new <ref>colortable</ref> object</p> + <p>the resulting new <ref resolved='predef::Image.Colortable'>Colortable</ref> object</p>   </text></group>      </doc>
2559:    <returntype>    <object>void </object></returntype>    <arguments><argument name='image'><type> -  <object resolved='predef::Image.image'>Image.image</object></type></argument> +  <object resolved='predef::Image.Image'>Image.Image</object></type></argument>   <argument name='number'><type><int/></type></argument>       </arguments>
2567:    <returntype>    <object>void </object></returntype>    <arguments><argument name='image'><type> -  <object resolved='predef::Image.image'>Image.image</object></type></argument> +  <object resolved='predef::Image.Image'>Image.Image</object></type></argument>   <argument name='number'><type><int/></type></argument>   <argument name='needed'><type>    <array><valuetype>
2604:    <returntype>    <object>object </object></returntype>    <arguments><argument name='image'><type> -  <object resolved='predef::Image.image'>Image.image</object></type></argument> +  <object resolved='predef::Image.Image'>Image.Image</object></type></argument>   <argument name='number'><type><int/></type></argument>       </arguments>
2612:    <returntype>    <object>object </object></returntype>    <arguments><argument name='image'><type> -  <object resolved='predef::Image.image'>Image.image</object></type></argument> +  <object resolved='predef::Image.Image'>Image.Image</object></type></argument>   <argument name='number'><type><int/></type></argument>   <argument name='needed'><type>    <array><valuetype>
2724:   </method><doc>   <text>   <p>cast the colortable to an array or mapping, - the array consists of <ref resolved='predef::Image.Image.color'>Image.color</ref> objects + the array consists of <ref resolved='predef::Image.Color'>Image.Color</ref> objects   and are not in index order. The mapping consists of - index:<ref resolved='predef::Image.Image.color'>Image.color</ref> pairs, where index is + index:<ref resolved='predef::Image.Color'>Image.Color</ref> pairs, where index is   the index (int) of that color.</p>      <p>example: <tt>(mapping)Image.Colortable(img)</tt>
3052:   <td><tt>ordered()</tt></td>   <td><tt>ordered<br/> (42,42,42, 8,8,<br/> 0,0, 0,1, 1,0)</tt></td>   </tr><tr valign='top'> - <td/> - <td/> - <td/> - <td/> + <td><image file='predef.Image.Colortable.ordered.5.png' height='115' width='80'>colortable.c31.png</image></td> + <td><image file='predef.Image.Colortable.ordered.6.png' height='115' width='80'>colortable.c32.png</image></td> + <td><image file='predef.Image.Colortable.ordered.7.png' height='115' width='80'>colortable.c33.png</image></td> + <td><image file='predef.Image.Colortable.ordered.8.png' height='115' width='80'>colortable.c34.png</image></td>   </tr></table>   </p>   </text>
3138:   <td>randomcube()</td>   <td>randomgrey()</td>   </tr><tr valign='top'> - <td/> - <td/> - <td/> + <td><image file='predef.Image.Colortable.randomcube.4.png' height='115' width='80'>colortable.c38.png</image></td> + <td><image file='predef.Image.Colortable.randomcube.5.png' height='115' width='80'>colortable.c39.png</image></td> + <td><image file='predef.Image.Colortable.randomcube.6.png' height='115' width='80'>colortable.c40.png</image></td>   </tr></table>   </p>   </text>
3194:   <text><p>target number of colors   </p></text></group>   <group><returns/><text> - <p>the new <ref>colortable</ref> object</p> + <p>the new <ref resolved='predef::Image.Colortable'>Colortable</ref> object</p>   </text></group>   <group><note/><text>   <p>this algorithm assumes all colors are different to
3269:   in the colorspace and comparing grey levels.</p>      <p>Default factors are 3, 4 and 1; blue is much - darker than green. Compare with <ref>Image.image-&gt;grey</ref>(). + darker than green. Compare with <ref resolved='predef::Image.Image.grey'>Image.Image-&gt;grey</ref>().   </p>   </text>   <group><returns/><text>
3286:   </doc>   </docgroup>   </class> + <class name='Font'> + <doc> + <text> + <p/> + </text> + <group><note/><text> + <p>Short technical documentation on a font file: + This object adds the text-drawing and -creation + capabilities of the <ref resolved='predef::Image.Image'>Image</ref> module.</p> +  + <p>For simple usage, see + <ref resolved='predef::Image.Font.write'>write</ref> and <ref resolved='predef::Image.Font.load'>load</ref>.</p> +  + <p>other methods: <ref resolved='predef::Image.Font.baseline'>baseline</ref>, + <ref resolved='predef::Image.Font.height'>height</ref>, + <ref resolved='predef::Image.Font.set_xspacing_scale'>set_xspacing_scale</ref>, + <ref resolved='predef::Image.Font.set_yspacing_scale'>set_yspacing_scale</ref>, + <ref resolved='predef::Image.Font.text_extents'>text_extents</ref></p> +  + <p><pre> +  struct file_head +  { +  unsigned INT32 cookie; - 0x464f4e54 +  unsigned INT32 version; - 1 +  unsigned INT32 chars; - number of chars +  unsigned INT32 height; - height of font +  unsigned INT32 baseline; - font baseline +  unsigned INT32 o[1]; - position of char_head's +  } *fh; +  struct char_head +  { +  unsigned INT32 width; - width of this character +  unsigned INT32 spacing; - spacing to next character +  unsigned char data[1]; - pixmap data (1byte/pixel) +  } *ch; +  +  version 2: +  +  +  On-disk syntax (everything in N.B.O), int is 4 bytes, a byte is 8 bits: +  +  pos +  0 int cookie = 'FONT'; or 0x464f4e54 +  4 int version = 2; 1 was the old version without the last four chars +  8 int numchars; Always 256 in this version of the dump program +  12 int height; in (whole) pixels +  16 int baseline; in (whole) pixels +  20 char direction; 1==right to left, 0 is left to right +  21 char format; Font format +  22 char colortablep; Colortable format +  23 char kerningtablep; Kerning table format +  +  24 int offsets[numchars]; pointers into the data, realative to &amp;cookie. +  [colortable] +  [kerningtable] +  +  At each offset: +  +  +  0 int width; in pixels +  4 int spacing; in 1/1000:th of a pixels +  8 char data[]; Enough data to plot width * font-&gt;height pixels +  Please note that if width is 0, there is no data. +  +  Font formats: +  id type +  0 Raw 8bit data +  1 RLE encoded data, char length, char data, 70% more compact than raw data +  2 ZLib compressed data 60% more compact than RLE +  +  Colortable types: +  0 No colortable (the data is an alpha channel) +  1 24bit RGB with alpha (index-&gt;color, 256*4 bytes, rgba) +  2 8bit Greyscale with alpha (index-&gt;color, 256*2 bytes) +  +  Kerningtable types: +  0 No kerning table +  1 numchars*numchars entries, each a signed char with the kerning value +  2 numchar entries, each with a list of kerning pairs, like this: +  int len +  len * (short char, short value) +  **! </pre> + </p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref></p></text></group> +  + </doc> + <docgroup homogen-name='baseline' homogen-type='method'> + <method name='baseline'> +  <returntype> +  <object>int </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <group><returns/><text> + <p>font baseline (pixels from top)</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Font.height'>height</ref>, <ref resolved='predef::Image.Font.text_extents'>text_extents</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='create' homogen-type='method'> + <method name='create'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='filename'><type><string/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Loads a font file to this font object. + Similar to <ref resolved='predef::Image.Font.load'>load</ref>().</p> + </text> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='height'> +  <returntype> +  <object>int </object></returntype> +  <arguments> +  </arguments> + </method><method name='text_extents'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments><argument name='text'><type><string/></type></argument> + <argument><value>...</value></argument> +  </arguments> + </method><doc> + <text> + <p>Calculate extents of a text-image, + that would be created by calling <ref resolved='predef::Image.Font.write'>write</ref> + with the same arguments.</p> + </text> + <group> +  <param name='text, ...'/> + <text><p>One or more lines of text.</p></text></group> + <group><returns/><text> + <p>an array of width and height</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Font.baseline'>baseline</ref>, <ref resolved='predef::Image.Font.text_extents'>text_extents</ref>, <ref resolved='predef::Image.Font.write'>write</ref>, <ref resolved='predef::Image.Font.height'>height</ref>, <ref resolved='predef::Image.Font.baseline'>baseline</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='load' homogen-type='method'> + <method name='load'> +  <returntype> +  <or><object resolved='predef::Image.Font.load'/><object>int </object></or></returntype> +  <arguments><argument name='filename'><type><string/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Loads a font file to this font object.</p> + </text> + <group> +  <param name='filename'/> + <text><p>Font file + </p></text></group> + <group><returns/><text> + <p>zero upon failure, font object upon success</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Font.write'>write</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='set_xspacing_scale'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='scale'><type><float/></type></argument> +  +  </arguments> + </method><method name='set_yspacing_scale'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='scale'><type><float/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Set spacing scale to write characters closer + or more far away. This does not change scale + of character, only the space between them.</p> + </text> + <group> +  <param name='scale'/> + <text><p>what scale to use</p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='write' homogen-type='method'> + <method name='write'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='text'><type><string/></type></argument> + <argument><value>...</value></argument> +  </arguments> + </method><doc> + <text> + <p>Writes some text; thus creating an image object + that can be used as mask or as a complete picture.</p> + </text> + <group> +  <param name='text, ...'/> + <text><p>One or more lines of text.</p></text></group> + <group><returns/><text> + <p>an <ref resolved='predef::Image.Image'>Image.Image</ref> object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Font.text_extents'>text_extents</ref>, <ref resolved='predef::Image.Font.load'>load</ref>, <ref resolved='predef::Image.Image.paste_mask'>Image.Image-&gt;paste_mask</ref>, <ref resolved='predef::Image.Image.paste_alpha_color'>Image.Image-&gt;paste_alpha_color</ref></p></text></group> +  + </doc> + </docgroup> + </class>   <module name='GIF'>   <doc>   <text>
3309:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref>Image.colortable</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.Colortable'>Image.Colortable</ref></p></text></group>      </doc>   <docgroup homogen-name='__decode' homogen-type='method'>
3630:   <group><note/><text>   <p>This function may throw errors upon illegal GIF data.   This function uses <ref resolved='predef::Image.GIF.__decode'>__decode</ref>, <ref resolved='predef::Image.GIF._decode'>_decode</ref>, - <ref resolved='predef::Image.image.paste'>Image.image-&gt;paste</ref> and - <ref resolved='predef::Image.image.paste_alpha'>Image.image-&gt;paste_alpha</ref> internally. + <ref resolved='predef::Image.Image.paste'>Image.Image-&gt;paste</ref> and + <ref resolved='predef::Image.Image.paste_alpha'>Image.Image-&gt;paste_alpha</ref> internally.   </p>   </text></group>   <group><seealso/><text>
3751:      <p>Example:   <pre> - img=&lt;ref&gt;Image.image&lt;/ref&gt;([...]); + img=&lt;ref&gt;Image.Image&lt;/ref&gt;([...]);   [...] // make your very-nice image   write(&lt;ref&gt;Image.GIF.encode&lt;/ref&gt;(img)); // write it as GIF on stdout   </pre>
3773:   color indicates transparency. GIF has only transparent   or nontransparent (no real alpha channel).   You can always dither a transparency channel: - <tt>Image.colortable(my_alpha, ({({0,0,0}),({255,255,255})}))<br/> + <tt>Image.Colortable(my_alpha, ({({0,0,0}),({255,255,255})}))<br/>    -&gt;full()<br/>-&gt;floyd_steinberg()<br/>-&gt;map(my_alpha)</tt></p></text></group>   <group>    <param name='tr_r'/>
4033:      <p>Example:   <pre> - img1=&lt;ref&gt;Image.image&lt;/ref&gt;([...]); - img2=&lt;ref&gt;Image.image&lt;/ref&gt;([...]); + img1=&lt;ref&gt;Image.Image&lt;/ref&gt;([...]); + img2=&lt;ref&gt;Image.Image&lt;/ref&gt;([...]);   [...] // make your very-nice images - nct=&lt;ref&gt;Image.colortable&lt;/ref&gt;([...]); // make a nice colortable + nct=&lt;ref&gt;Image.Colortable&lt;/ref&gt;([...]); // make a nice colortable   write(&lt;ref&gt;Image.GIF.header_block&lt;/ref&gt;(xsize,ysize,nct)); // write a GIF header   write(&lt;ref&gt;Image.GIF.render_block&lt;/ref&gt;(img1,nct,0,0,0,10)); // write a render block   write(&lt;ref&gt;Image.GIF.render_block&lt;/ref&gt;(img2,nct,0,0,0,10)); // write a render block
4175:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref>Image.colortable</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.Colortable'>Image.Colortable</ref></p></text></group>      </doc>   <docgroup homogen-name='__decode' homogen-type='method'>
4333:   <ref resolved='predef::Image.Image.setcolor'>setcolor</ref>,   <ref resolved='predef::Image.Image.setpixel'>setpixel</ref>,   <ref resolved='predef::Image.Image.threshold'>threshold</ref>, - <ref>polyfill</ref></p> + <ref resolved='predef::Image.Image.polyfill'>polyfill</ref></p>      <p>operators: <br/> - <ref>`&amp;</ref>, - <ref>`*</ref>, - <ref>`+</ref>, - <ref>`-</ref>, - <ref>`==</ref>, - <ref>`&gt;</ref>, - <ref>`&lt;</ref>, - <ref>`|</ref></p> + <ref resolved='predef::Image.Image.`&amp;'>`&amp;</ref>, + <ref resolved='predef::Image.Image.`*'>`*</ref>, + <ref resolved='predef::Image.Image.`+'>`+</ref>, + <ref resolved='predef::Image.Image.`-'>`-</ref>, + <ref resolved='predef::Image.Image.`=='>`==</ref>, + <ref resolved='predef::Image.Image.`&gt;'>`&gt;</ref>, + <ref resolved='predef::Image.Image.`&lt;'>`&lt;</ref>, + <ref resolved='predef::Image.Image.`|'>`|</ref></p>      <p>pasting images, layers: <br/> - <ref>add_layers</ref>, - <ref>paste</ref>, - <ref>paste_alpha</ref>, - <ref>paste_alpha_color</ref>, - <ref>paste_mask</ref></p> + <ref resolved='predef::Image.Image.add_layers'>add_layers</ref>, + <ref resolved='predef::Image.Image.paste'>paste</ref>, + <ref resolved='predef::Image.Image.paste_alpha'>paste_alpha</ref>, + <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref>, + <ref resolved='predef::Image.Image.paste_mask'>paste_mask</ref></p>      <p>getting subimages, scaling, rotating: <br/>   <ref resolved='predef::Image.Image.autocrop'>autocrop</ref>,   <ref resolved='predef::Image.Image.clone'>clone</ref>,   <ref resolved='predef::Image.Image.copy'>copy</ref>, - <ref>dct</ref>, - <ref>mirrorx</ref>, - <ref>rotate</ref>, - <ref>rotate_ccw</ref>, - <ref>rotate_cw</ref>, - <ref>rotate_expand</ref>, - <ref>scale</ref>, - <ref>skewx</ref>, - <ref>skewx_expand</ref>, - <ref>skewy</ref>, - <ref>skewy_expand</ref></p> + <ref resolved='predef::Image.Image.dct'>dct</ref>, + <ref resolved='predef::Image.Image.mirrorx'>mirrorx</ref>, + <ref resolved='predef::Image.Image.rotate'>rotate</ref>, + <ref resolved='predef::Image.Image.rotate_ccw'>rotate_ccw</ref>, + <ref resolved='predef::Image.Image.rotate_cw'>rotate_cw</ref>, + <ref resolved='predef::Image.Image.rotate_expand'>rotate_expand</ref>, + <ref resolved='predef::Image.Image.scale'>scale</ref>, + <ref resolved='predef::Image.Image.skewx'>skewx</ref>, + <ref resolved='predef::Image.Image.skewx_expand'>skewx_expand</ref>, + <ref resolved='predef::Image.Image.skewy'>skewy</ref>, + <ref resolved='predef::Image.Image.skewy_expand'>skewy_expand</ref></p>      <p>calculation by pixels: <br/>   <ref resolved='predef::Image.Image.apply_matrix'>apply_matrix</ref>,
4381:   <ref resolved='predef::Image.Image.rgb_to_hsv'>rgb_to_hsv</ref>,   <ref resolved='predef::Image.Image.hsv_to_rgb'>hsv_to_rgb</ref>,<br/></p>    - <p><ref>average</ref>, - <ref>max</ref>, - <ref>min</ref>, - <ref>sum</ref>, - <ref>sumf</ref>, - <ref>find_min</ref>, - <ref>find_max</ref></p> + <p><ref resolved='predef::Image.Image.average'>average</ref>, + <ref resolved='predef::Image.Image.max'>max</ref>, + <ref resolved='predef::Image.Image.min'>min</ref>, + <ref resolved='predef::Image.Image.sum'>sum</ref>, + <ref resolved='predef::Image.Image.sumf'>sumf</ref>, + <ref resolved='predef::Image.Image.find_min'>find_min</ref>, + <ref resolved='predef::Image.Image.find_max'>find_max</ref></p>      <p>special pattern drawing:<br/> - <ref>noise</ref>, - <ref>turbulence</ref>, + <ref resolved='predef::Image.Image.noise'>noise</ref>, + <ref resolved='predef::Image.Image.turbulence'>turbulence</ref>,   <ref resolved='predef::Image.Image.test'>test</ref>,   <ref resolved='predef::Image.Image.tuned_box'>tuned_box</ref>,   <ref resolved='predef::Image.Image.gradients'>gradients</ref>   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.font'>Image.font</ref>, <ref>Image.colortable</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Font'>Image.Font</ref>, <ref resolved='predef::Image.Colortable'>Image.Colortable</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group>      </doc> -  + <docgroup homogen-type='method'> + <method name='gif_begin'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='gif_begin'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='num_colors'><type><int/></type></argument> +  +  </arguments> + </method><method name='gif_begin'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='colors'><type> +  <array><valuetype> +  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> +  +  </arguments> + </method><method name='gif_end'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='gif_netscape_loop'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='loops'><type><int/></type></argument> +  +  </arguments> + </method><method name='togif'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='togif'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='trans_r'><type><int/></type></argument> + <argument name='trans_g'><type><int/></type></argument> + <argument name='trans_b'><type><int/></type></argument> +  +  </arguments> + </method><method name='togif'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='num_colors'><type><int/></type></argument> + <argument name='trans_r'><type><int/></type></argument> + <argument name='trans_g'><type><int/></type></argument> + <argument name='trans_b'><type><int/></type></argument> +  +  </arguments> + </method><method name='togif'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='colors'><type> +  <array><valuetype> +  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> + <argument name='trans_r'><type><int/></type></argument> + <argument name='trans_g'><type><int/></type></argument> + <argument name='trans_b'><type><int/></type></argument> +  +  </arguments> + </method><method name='togif_fs'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='togif_fs'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='trans_r'><type><int/></type></argument> + <argument name='trans_g'><type><int/></type></argument> + <argument name='trans_b'><type><int/></type></argument> +  +  </arguments> + </method><method name='togif_fs'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='num_colors'><type><int/></type></argument> + <argument name='trans_r'><type><int/></type></argument> + <argument name='trans_g'><type><int/></type></argument> + <argument name='trans_b'><type><int/></type></argument> +  +  </arguments> + </method><method name='togif_fs'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='colors'><type> +  <array><valuetype> +  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> + <argument name='trans_r'><type><int/></type></argument> + <argument name='trans_g'><type><int/></type></argument> + <argument name='trans_b'><type><int/></type></argument> +  +  </arguments> + </method><method name='gif_add'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='gif_add_fs'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='gif_add_nomap'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='gif_add_fs_nomap'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><method name='*'> +  <returntype> +  <object>string gif_add</object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><method name='*'> +  <returntype> +  <object>string gif_add</object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> + <argument name='delay_cs'><type><int/></type></argument> +  +  </arguments> + </method><method name='*'> +  <returntype> +  <object>string gif_add</object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> + <argument name='num_colors'><type><int/></type></argument> + <argument name='delay_cs'><type><int/></type></argument> +  +  </arguments> + </method><method name='*'> +  <returntype> +  <object>string gif_add</object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> + <argument name='colors'><type> +  <array><valuetype> +  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> + <argument name='delay_cs'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>old GIF API compatibility function. Don't use + in any new code.</p> +  + <p><table> + <tr><td/><td>is replaced by</td></tr> + <tr><td>gif_begin</td><td><ref resolved='predef::Image.GIF.header_block'>Image.GIF.header_block</ref></td></tr> + <tr><td>gif_end</td><td><ref resolved='predef::Image.GIF.end_block'>Image.GIF.end_block</ref></td></tr> + <tr><td>gif_netscape_loop</td><td><ref resolved='predef::Image.GIF.netscape_loop_block'>Image.GIF.netscape_loop_block</ref></td></tr> + <tr><td>togif</td><td><ref resolved='predef::Image.GIF.encode'>Image.GIF.encode</ref></td></tr> + <tr><td>togif_fs</td><td><ref resolved='predef::Image.GIF.encode'>Image.GIF.encode</ref>¹</td></tr> + <tr><td>gif_add</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>¹²</td></tr> + <tr><td>gif_add_fs</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>¹</td></tr> + <tr><td>gif_add_nomap</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>²</td></tr> + <tr><td>gif_add_fs_nomap</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>¹²</td></tr> + </table></p> +  + <p>¹ Use <ref resolved='predef::Image.Colortable'>Image.Colortable</ref> to get whatever dithering + you want.</p> +  + <p>² local map toggle is sent as an argument + </p> + </text> + <group><returns/><text> + <p>GIF data.</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='`&amp;' homogen-type='method'> + <method name='`&amp;'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`&amp;'/></type></argument> +  +  </arguments> + </method><method name='`&amp;'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`&amp;'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>makes a new image out of the minimum pixels values + </p> + </text> + <group> +  <param name='operand'/> + <text><p>the other image to compare with; + the images must have the same size.</p></text></group> + <group> +  <param name='color'/> + <text><p>an array in format ({r,g,b}), this is equal + to using an uniform-colored image.</p></text></group> + <group> +  <param name='value'/> + <text><p>equal to ({value,value,value}).</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.`-'>`-</ref>, <ref resolved='predef::Image.Image.`+'>`+</ref>, <ref resolved='predef::Image.Image.`|'>`|</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.add_layers'>add_layers</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='`*' homogen-type='method'> + <method name='`*'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`*'/></type></argument> +  +  </arguments> + </method><method name='`*'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`*'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Multiplies pixel values and creates a new image. + This can be useful to lower the values of an image, + making it greyer, for instance:</p> +  + <p><pre>image=image*128+64;</pre> + </p> + </text> + <group> +  <param name='operand'/> + <text><p>the other image to multiply with; + the images must have the same size.</p></text></group> + <group> +  <param name='color'/> + <text><p>an array in format ({r,g,b}), this is equal + to using an uniform-colored image.</p></text></group> + <group> +  <param name='value'/> + <text><p>equal to ({value,value,value}). + </p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.`-'>`-</ref>, <ref resolved='predef::Image.Image.`+'>`+</ref>, <ref resolved='predef::Image.Image.`|'>`|</ref>, <ref resolved='predef::Image.Image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.Image.add_layers'>add_layers</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='`+' homogen-type='method'> + <method name='`+'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`+'/></type></argument> +  +  </arguments> + </method><method name='`+'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`+'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>adds two images; values are truncated at 255.</p> + </text> + <group> +  <param name='operand'/> + <text><p>the image which to add.</p></text></group> + <group> +  <param name='color'/> + <text><p>an array in format ({r,g,b}), this is equal + to using an uniform-colored image.</p></text></group> + <group> +  <param name='value'/> + <text><p>equal to ({value,value,value}).</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.`-'>`-</ref>, <ref resolved='predef::Image.Image.`|'>`|</ref>, <ref resolved='predef::Image.Image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.add_layers'>add_layers</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='`-' homogen-type='method'> + <method name='`-'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`-'/></type></argument> +  +  </arguments> + </method><method name='`-'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`-'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>makes a new image out of the difference</p> + </text> + <group> +  <param name='operand'/> + <text><p>the other image to compare with; + the images must have the same size.</p></text></group> + <group> +  <param name='color'/> + <text><p>an array in format ({r,g,b}), this is equal + to using an uniform-colored image.</p></text></group> + <group> +  <param name='value'/> + <text><p>equal to ({value,value,value}).</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.`+'>`+</ref>, <ref resolved='predef::Image.Image.`|'>`|</ref>, <ref resolved='predef::Image.Image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.add_layers'>add_layers</ref>, <ref resolved='predef::Image.Image.min'>min</ref>, <ref resolved='predef::Image.Image.max'>max</ref>, <ref resolved='predef::Image.Image.`=='>`==</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`=='/></type></argument> +  +  </arguments> + </method><method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`=='> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><method name='`&lt;'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`=='/></type></argument> +  +  </arguments> + </method><method name='`&lt;'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`&lt;'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><method name='`&gt;'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`=='/></type></argument> +  +  </arguments> + </method><method name='`&gt;'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`&gt;'> +  <returntype> +  <object>int </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Compares an image with another image or a color.</p> +  + <p>Comparision is strict and on pixel-by-pixel basis. + (Means if not all pixel r,g,b values are + correct compared with the corresponding + pixel values, 0 is returned.) + </p> + </text> + <group> +  <param name='operand'/> + <text><p>the other image to compare with; + the images must have the same size.</p></text></group> + <group> +  <param name='color'/> + <text><p>an array in format ({r,g,b}), this is equal + to using an uniform-colored image.</p></text></group> + <group> +  <param name='value'/> + <text><p>equal to ({value,value,value}).</p> +  + <p/></text></group> + <group><returns/><text> + <p>true (1) or false (0).</p> + </text></group> + <group><note/><text> + <p>`&lt; or `&gt; on empty ("no image") image objects or images + with different size will result in an error. + `== is always true on two empty image objects and + always false if one and only one of the image objects + is empty or the images differs in size.</p> +  + <p>a&gt;=b and a&lt;=b between objects is equal to !(a&lt;b) and !(a&gt;b), + which may not be what you want (since both &lt; and &gt; can return + false, comparing the same images).</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.`-'>`-</ref>, <ref resolved='predef::Image.Image.`+'>`+</ref>, <ref resolved='predef::Image.Image.`|'>`|</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.`&amp;'>`&amp;amp;</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='`|' homogen-type='method'> + <method name='`|'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='operand'><type><object resolved='predef::Image.Image.`|'/></type></argument> +  +  </arguments> + </method><method name='`|'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='color'><type> +  <array><valuetype><int/></valuetype></array></type></argument> +  +  </arguments> + </method><method name='`|'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='value'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>makes a new image out of the maximum pixels values + </p> + </text> + <group> +  <param name='operand'/> + <text><p>the other image to compare with; + the images must have the same size.</p></text></group> + <group> +  <param name='color'/> + <text><p>an array in format ({r,g,b}), this is equal + to using an uniform-colored image.</p></text></group> + <group> +  <param name='value'/> + <text><p>equal to ({value,value,value}).</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.`-'>`-</ref>, <ref resolved='predef::Image.Image.`+'>`+</ref>, <ref resolved='predef::Image.Image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.add_layers'>add_layers</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='add_layers' homogen-type='method'> + <method name='add_layers'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='layer0'><type> +  <array><valuetype> +  <or><int/><object resolved='predef::Image.Image.add_layers'/></or></valuetype></array></type></argument> + <argument><value>...</value></argument> +  </arguments> + </method><method name='add_layers'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='x1'><type><int/></type></argument> + <argument name='y1'><type><int/></type></argument> + <argument name='x2'><type><int/></type></argument> + <argument name='y2'><type><int/></type></argument> + <argument name='layer0'><type> +  <array><valuetype> +  <or><int/><object resolved='predef::Image.Image.add_layers'/></or></valuetype></array></type></argument> + <argument><value>...</value></argument> +  </arguments> + </method><doc> + <text> + <p>Using the called object as base, adds layers using masks, + opaque channel values and special methods.</p> +  + <p>The destination image can also be cropped, thus + speeding up the process.</p> +  + <p>Each array in the layers array is one of: + <pre> + ({object image,object|int mask}) + ({object image,object|int mask,int opaque_value}) + ({object image,object|int mask,int opaque_value,int method}) + </pre> + Given 0 as mask means the image is totally opaque.</p> +  + <p>Default opaque value is 255, only using the mask.</p> +  + <p>Methods for now are: + <pre> + 0 no operation (just paste with mask, default) + 1 maximum (`|) + 2 minimum (`&amp;) + 3 multiply (`*) + 4 add (`+) + 5 diff (`-) + </pre> + The layer image and the current source are calculated + through the given method and then pasted using the mask + and the opaque channel value.</p> +  + <p>All given images must be the same size. + </p> + </text> + <group> +  <param name='layer0'/> + <text><p>image to paste</p></text></group> + <group> +  <param name='x1'/> +  <param name='y1'/> +  <param name='x2'/> +  <param name='y2'/> + <text><p>rectangle for cropping + </p></text></group> + <group><returns/><text> + <p>a new image object</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.Image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref>, <ref resolved='predef::Image.Image.`|'>`|</ref>, <ref resolved='predef::Image.Image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.`+'>`+</ref>, <ref resolved='predef::Image.Image.`-'>`-</ref></p></text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='apply_matrix' homogen-type='method'>   <method name='apply_matrix'>    <returntype>
4532:      </doc>   </docgroup> + <docgroup homogen-name='apply_max' homogen-type='method'> + <method name='apply_max'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='matrix'><type> +  <array><valuetype> +  <array><valuetype> +  <or><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></valuetype></array></type></argument> +  +  </arguments> + </method><method name='apply_max'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='matrix'><type> +  <array><valuetype> +  <array><valuetype> +  <or><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></valuetype></array></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='apply_max'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='matrix'><type> +  <array><valuetype> +  <array><valuetype> +  <or><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></valuetype></array></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> + <argument name='div'><type> +  <or><int/><float/></or></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>This is the same as apply_matrix, but it uses the maximum + instead.</p> +  + <p>This function is not very fast. + </p> + </text> + <group> +  <param name='array'/> + <text><p>the matrix; innermost is a value or an array with red, green, blue + values for red, green, blue separation.</p></text></group> + <group> +  <param name='r'/> +  <param name='g'/> +  <param name='b'/> + <text><p>base level of result, default is zero</p></text></group> + <group> +  <param name='div'/> + <text><p>division factor, default is 1.0.</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='autocrop' homogen-type='method'>   <method name='autocrop'>    <returntype>
4608:      </doc>   </docgroup> + <docgroup homogen-type='method'> + <method name='average'> +  <returntype> +  <array><valuetype><float/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='min'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='max'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='sum'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='sumf'> +  <returntype> +  <array><valuetype><float/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>Gives back the average, minimum, maximum color value, + and the sum of all pixel's color value. + </p> + </text> + <group><note/><text> + <p>sum() values can wrap! Most systems only have 31 bits + available for positive integers. (Meaning, be careful + with images that have more than 8425104 pixels.)</p> +  + <p>average() and sumf() may also wrap, but on a line basis. + (Meaning, be careful with images that are wider +  than 8425104 pixels.) These functions may have a precision + problem instead, during to limits in the 'double' C type and/or + 'float' Pike type.</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='box' homogen-type='method'>   <method name='box'>    <returntype>
4687:   <text>   <p>Cast the image to another datatype. Currently supported   are string ("rgbrgbrgb...") and array (double array - of <ref resolved='predef::Image.Image.color'>Image.color</ref> objects).</p> + of <ref resolved='predef::Image.Color'>Image.Color</ref> objects).</p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image.color'>Image.color</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group> + <p><ref resolved='predef::Image.Color'>Image.Color</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group>      </doc>   </docgroup>
4719:   <text>   <p>Changes one color (exakt match) to another.   If non-exakt-match is preferred, check <ref resolved='predef::Image.Image.distancesq'>distancesq</ref> - and <ref>paste_alpha_color</ref>.</p> + and <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref>.</p>   </text>   <group>    <param name='tor'/>
4982:   <p>the new image object</p>   </text></group>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image.grey'>grey</ref>, <ref>`*</ref>, <ref resolved='predef::Image.Image.modify_by_intensity'>modify_by_intensity</ref></p></text></group> + <p><ref resolved='predef::Image.Image.grey'>grey</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.modify_by_intensity'>modify_by_intensity</ref></p></text></group>      </doc>   </docgroup>
5139:      </doc>   </docgroup> + <docgroup homogen-name='dct' homogen-type='method'> + <method name='dct'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='newx'><type><int/></type></argument> + <argument name='newy'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Scales the image to a new size.</p> +  + <p>Method for scaling is rather complex; + the image is transformed via a cosine transform, + and then resampled back.</p> +  + <p>This gives a quality-conserving upscale, + but the algorithm used is n*n+n*m, where n + and m is pixels in the original and new image.</p> +  + <p>Recommended wrapping algorithm is to scale + overlapping parts of the image-to-be-scaled.</p> +  + <p>This functionality is actually added as an + true experiment, but works... + </p> + </text> + <group> +  <param name='newx'/> +  <param name='newy'/> + <text><p>new image size in pixels + </p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><note/><text> + <p>Do NOT use this function if you don't know what + you're dealing with! Read some signal theory first...</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='distancesq' homogen-type='method'>   <method name='distancesq'>    <returntype>
5198:      </doc>   </docgroup> + <docgroup homogen-type='method'> + <method name='find_min'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='find_max'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><method name='find_min'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments><argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='find_max'> +  <returntype> +  <array><valuetype><int/></valuetype></array></returntype> +  <arguments><argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Gives back the position of the minimum or maximum + pixel value, weighted to grey. + </p> + </text> + <group> +  <param name='r'/> +  <param name='g'/> +  <param name='b'/> + <text><p>weight of color, default is r=87,g=127,b=41, same + as the <ref resolved='predef::Image.Image.grey'>grey</ref>() method.</p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='frompnm'> +  <returntype> +  <or><object resolved='predef::Image.Image.frompnm'/><object>string </object></or></returntype> +  <arguments><argument name='pnm'><type><string/></type></argument> +  +  </arguments> + </method><method name='fromppm'> +  <returntype> +  <or><object resolved='predef::Image.Image.frompnm'/><object>string </object></or></returntype> +  <arguments><argument name='pnm'><type><string/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p><b>compability method</b> - do not use in new programs.</p> +  + <p>See <ref resolved='predef::Image.PNM.decode'>Image.PNM.decode</ref>(). + </p> + </text> + <group> +  <param name='pnm'/> + <text><p>pnm data, as a string</p></text></group> + <group><returns/><text> + <p>the called object or a hint of what wronged.</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='gamma' homogen-type='method'>   <method name='gamma'>    <returntype>
5236:   <p>a new image object</p>   </text></group>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image.grey'>grey</ref>, <ref>`*</ref>, <ref resolved='predef::Image.Image.color'>color</ref></p></text></group> + <p><ref resolved='predef::Image.Image.grey'>grey</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.color'>color</ref></p></text></group>      </doc>   </docgroup>
5348:   <p>the new image object</p>   </text></group>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image.color'>color</ref>, <ref>`*</ref>, <ref resolved='predef::Image.Image.modify_by_intensity'>modify_by_intensity</ref></p></text></group> + <p><ref resolved='predef::Image.Image.color'>color</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.modify_by_intensity'>modify_by_intensity</ref></p></text></group>      </doc>   </docgroup>
5516:      </doc>   </docgroup> + <docgroup homogen-name='make_ascii' homogen-type='method'> + <method name='make_ascii'> +  <returntype> +  <object>string </object></returntype> +  <arguments><argument name='orient1'><type><object resolved='predef::Image.Image.make_ascii'/></type></argument> + <argument name='objectorient2'><type> +  <object resolved='predef::Image.Image.make_ascii'/></type></argument> + <argument name='objectorient3'><type> +  <object resolved='predef::Image.Image.make_ascii'/></type></argument> + <argument name='objectorient4'><type> +  <object resolved='predef::Image.Image.make_ascii'/></type></argument> + <argument name='int|voidxsize'><type> +  <object resolved='predef::Image.Image.make_ascii'/></type></argument> + <argument name='int|voidysize'><type> +  <object resolved='predef::Image.Image.make_ascii'/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>This method creates a string that looks like + the image. Example: + <pre> +  //Stina is an image with a cat. +  array(object) Stina4=Stina-&gt;orient4(); +  Stina4[1]*=215; +  Stina4[3]*=215; +  string foo=Stina-&gt;make_ascii(@Stina4,40,4,8); + </pre> + </p> + </text> + <group><returns/><text> + <p>some nice acsii-art.</p> + </text></group> + <group><note/><text> + <p>Experimental. +  <pre> | / - \ +  hue= 0 64 128 192 (=red in an hsv image) +  </pre></p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.orient'>orient</ref>, <ref resolved='predef::Image.Image.orient4'>orient4</ref></p></text></group> +  + </doc> + </docgroup>   <docgroup homogen-type='method'>   <method name='map_closest'>    <returntype>
5556:   <p>Old code:   <pre>img=map_fs(img-&gt;select_colors(200));</pre>   New code: - <pre>img=Image.colortable(img,200)-&gt;floyd_steinberg()-&gt;map(img);</pre></p> + <pre>img=Image.Colortable(img,200)-&gt;floyd_steinberg()-&gt;map(img);</pre></p>      <p>Old code:   <pre>img=map_closest(img-&gt;select_colors(17)+({({255,255,255}),({0,0,0})}));</pre>   New code: - <pre>img=Image.colortable(img,19,({({255,255,255}),({0,0,0})}))-&gt;map(img);</pre></p> + <pre>img=Image.Colortable(img,19,({({255,255,255}),({0,0,0})}))-&gt;map(img);</pre></p>   </text>      </doc>   </docgroup> -  + <docgroup homogen-name='match' homogen-type='method'> + <method name='match'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='scale'><type> +  <or><int/><float/></or></type></argument> + <argument name='objectneedle'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> +  +  </arguments> + </method><method name='match'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='scale'><type> +  <or><int/><float/></or></type></argument> + <argument name='objectneedle'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='objecthaystack_cert'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='objectneedle_cert'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> +  +  </arguments> + </method><method name='match'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='scale'><type> +  <or><int/><float/></or></type></argument> + <argument name='objectneedle'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='objecthaystack_avoid'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='intfoo'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> +  +  </arguments> + </method><method name='match'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='scale'><type> +  <or><int/><float/></or></type></argument> + <argument name='objectneedle'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='objecthaystack_cert'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='objectneedle_cert'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='objecthaystack_avoid'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> + <argument name='intfoo'><type> +  <object resolved='predef::Image.Image.match'/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>This method creates an image that describes the + match in every pixel in the image and the + needle-Image.</p> +  + <p><pre> +  new pixel value = +  sum( abs(needle_pixel-haystack_pixel)) + </pre></p> +  + <p>The new image only have the red rgb-part set.</p> +  + <p/> + </text> + <group> +  <param name='scale'/> + <text><p>Every pixel is divided with this value. + Note that a proper value here depends on + the size of the neadle. + </p></text></group> + <group> +  <param name='needle'/> + <text><p>The image to use for the matching. + </p></text></group> + <group> +  <param name='haystack_cert'/> + <text><p>This image should be the same size as + the image itselves. A non-white-part of the + haystack_cert-image modifies the output + by lowering it. + </p></text></group> + <group> +  <param name='needle_cert'/> + <text><p>The same, but for the needle-image. + </p></text></group> + <group> +  <param name='foo'/> +  <param name='haystack_avoid'/> + <text><p>This image should be the same size as + the image itselves. If foo is less than the red + value in haystack_avoid the corresponding + matching-calculating is not calculated. The avoided parts + are drawn in the color 0,100,0. + </p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><note/><text> + <p>Experimental.</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.phasev'>phasev</ref>, <ref resolved='predef::Image.Image.phaseh'>phaseh</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='mirrorx' homogen-type='method'> + <method name='mirrorx'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>mirrors an image: + <table><tr valign='center'> + <td><image file='predef.Image.Image.mirrorx.1.png' height='115' width='80'>matrix.c0.png</image></td> + <td><image file='predef.Image.Image.mirrorx.2.png' height='115' width='80'>matrix.c1.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;mirrorx();</td> + </tr></table></p> + </text> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='mirrory' homogen-type='method'> + <method name='mirrory'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>mirrors an image: + <table><tr valign='center'> + <td><image file='predef.Image.Image.mirrory.1.png' height='115' width='80'>matrix.c2.png</image></td> + <td><image file='predef.Image.Image.mirrory.2.png' height='115' width='80'>matrix.c3.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;mirrory();</td> + </tr></table> + </p> + </text> +  + </doc> + </docgroup>   <docgroup homogen-name='modify_by_intensity' homogen-type='method'>   <method name='modify_by_intensity'>    <returntype>
5613:   <p>the new image object</p>   </text></group>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image.grey'>grey</ref>, <ref>`*</ref>, <ref resolved='predef::Image.Image.color'>color</ref></p></text></group> + <p><ref resolved='predef::Image.Image.grey'>grey</ref>, <ref resolved='predef::Image.Image.`*'>`*</ref>, <ref resolved='predef::Image.Image.color'>color</ref></p></text></group>      </doc>   </docgroup> -  + <docgroup homogen-name='noise' homogen-type='method'> + <method name='noise'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='colorrange'><type> +  <array><valuetype> +  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> +  +  </arguments> + </method><method name='noise'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='colorrange'><type> +  <array><valuetype> +  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> + <argument name='scale'><type><float/></type></argument> + <argument name='xdiff'><type><float/></type></argument> + <argument name='ydiff'><type><float/></type></argument> + <argument name='cscale'><type><float/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Gives a new image with the old image's size, + filled width a 'noise' pattern.</p> +  + <p>The random seed may be different with each instance of pike.</p> +  + <p>Example: + <tt>-&gt;noise( ({0,({255,0,0}), 0.3,({0,255,0}), 0.6,({0,0,255}), 0.8,({255,255,0})}), 0.2,0.0,0.0,1.0 );</tt> + <br/><image file='predef.Image.Image.noise.1.png' height='100' width='200'>pattern.c0.png</image> + </p> + </text> + <group> +  <param name='colorrange'/> + <text><p>colorrange table</p></text></group> + <group> +  <param name='scale'/> + <text><p>default value is 0.1</p></text></group> + <group> +  <param name='xdiff'/> +  <param name='ydiff'/> + <text><p>default value is 0,0</p></text></group> + <group> +  <param name='cscale'/> + <text><p>default value is 1</p></text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.turbulence'>turbulence</ref></p></text></group> +  + </doc> + </docgroup>   <docgroup homogen-type='method'> -  + <method name='orient'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument><value>void|array(object)</value></argument> +  </arguments> + </method><method name='orient4'> +  <returntype> +  <array><valuetype><object resolved='predef::Image.Image.orient'/></valuetype></array></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>Draws images describing the orientation + of the current image.</p> +  + <p><tt>orient</tt> gives an HSV image + (run a <ref resolved='predef::Image.Image.hsv_to_rgb'>hsv_to_rgb</ref> pass on it + to get a viewable image). + corresponding to the angle of the + orientation: + <pre> | / - \ +  hue= 0 64 128 192 (=red in an hsv image) +  purple cyan green red + </pre> + Red, green and blue channels are added + and not compared separately.</p> +  + <p>If you first use orient4 you can give its + output as input to this function.</p> +  + <p>The <tt>orient4</tt> function gives back + 4 image objects, corresponding to the + amount of different directions, see above. + </p> + </text> + <group><returns/><text> + <p>an image or an array of the four new image objects</p> + </text></group> + <group><note/><text> + <p>experimental status; may not be exact the same + output in later versions</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'>   <method name='outline'>    <returntype>    <object>object </object></returntype>
5759:      </doc>   </docgroup> + <docgroup homogen-name='paste' homogen-type='method'> + <method name='paste'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='image'><type><object resolved='predef::Image.Image.paste'/></type></argument> +  +  </arguments> + </method><method name='paste'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='image'><type><object resolved='predef::Image.Image.paste'/></type></argument> + <argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Pastes a given image over the current image. + </p> + </text> + <group> +  <param name='image'/> + <text><p>image to paste (may be empty, needs to be an image object)</p></text></group> + <group> +  <param name='x'/> +  <param name='y'/> + <text><p>where to paste the image; default is 0,0 + </p></text></group> + <group><returns/><text> + <p>the object called</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.Image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='paste_alpha' homogen-type='method'> + <method name='paste_alpha'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='image'><type><object resolved='predef::Image.Image.paste_alpha'/></type></argument> + <argument name='alpha'><type><int/></type></argument> +  +  </arguments> + </method><method name='paste_alpha'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='image'><type><object resolved='predef::Image.Image.paste_alpha'/></type></argument> + <argument name='alpha'><type><int/></type></argument> + <argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Pastes a given image over the current image, with + the specified alpha channel value.</p> +  + <p>An alpha channel value of 0 leaves nothing of the original + image in the paste area, 255 is meaningless and makes the + given image invisible. + </p> + </text> + <group> +  <param name='image'/> + <text><p>image to paste</p></text></group> + <group> +  <param name='alpha'/> + <text><p>alpha channel value</p></text></group> + <group> +  <param name='x'/> +  <param name='y'/> + <text><p>where to paste the image; default is 0,0 + </p></text></group> + <group><returns/><text> + <p>the object called</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.Image.paste'>paste</ref>, <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='paste_alpha_color' homogen-type='method'> + <method name='paste_alpha_color'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='mask'><type><object resolved='predef::Image.Image.paste_alpha_color'/></type></argument> +  +  </arguments> + </method><method name='paste_alpha_color'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='mask'><type><object resolved='predef::Image.Image.paste_alpha_color'/></type></argument> + <argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><method name='paste_alpha_color'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='mask'><type><object resolved='predef::Image.Image.paste_alpha_color'/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='paste_alpha_color'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='mask'><type><object resolved='predef::Image.Image.paste_alpha_color'/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> + <argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Pastes a given color over the current image, + using the given mask as opaque channel.</p> +  + <p>A pixel value of 255 makes the result become the color given, + 0 doesn't change anything.</p> +  + <p>The masks red, green and blue values are used separately. + If no color are given, the current is used. + </p> + </text> + <group> +  <param name='mask'/> + <text><p>mask image</p></text></group> + <group> +  <param name='r'/> +  <param name='g'/> +  <param name='b'/> + <text><p>what color to paint with; default is current</p></text></group> + <group> +  <param name='x'/> +  <param name='y'/> + <text><p>where to paste the image; default is 0,0 + </p></text></group> + <group><returns/><text> + <p>the object called</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.Image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='paste_mask' homogen-type='method'> + <method name='paste_mask'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='image'><type><object resolved='predef::Image.Image.paste_mask'/></type></argument> + <argument name='mask'><type><object resolved='predef::Image.Image.paste_mask'/></type></argument> +  +  </arguments> + </method><method name='paste_mask'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='image'><type><object resolved='predef::Image.Image.paste_mask'/></type></argument> + <argument name='mask'><type><object resolved='predef::Image.Image.paste_mask'/></type></argument> + <argument name='x'><type><int/></type></argument> + <argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Pastes a given image over the current image, + using the given mask as opaque channel.</p> +  + <p>A pixel value of 255 makes the result become a pixel + from the given image, 0 doesn't change anything.</p> +  + <p>The masks red, green and blue values are used separately. + </p> + </text> + <group> +  <param name='image'/> + <text><p>image to paste</p></text></group> + <group> +  <param name='mask'/> + <text><p>mask image</p></text></group> + <group> +  <param name='x'/> +  <param name='y'/> + <text><p>where to paste the image; default is 0,0 + </p></text></group> + <group><returns/><text> + <p>the object called</p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.paste'>paste</ref>, <ref resolved='predef::Image.Image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.Image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> +  + </doc> + </docgroup>   <docgroup homogen-type='method'> -  + <method name='phaseh'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='phasev'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='phasevh'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='phasehv'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>Draws images describing the phase + of the current image. phaseh gives the + horizontal phase and phasev the vertical + phase.</p> +  + <p><tt>phaseh</tt> gives an image + were + <pre> +  max falling min rising + value= 0 64 128 192 + </pre></p> +  + <p>0 is set if there is no way to determine + if it is rising or falling. This is done + for the every red, green and blue part of + the image.</p> +  + <p>Phase images can be used to create ugly + effects or to find meta-information + in the orginal image. + </p> + </text> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><note/><text> + <p>experimental status; may not be exact the same + output in later versions</p> + </text></group> + <group><bugs/><text> + <p>0 should not be set as explained above.</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='polyfill' homogen-type='method'> + <method name='polyfill'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='curve'><type><varargs> +  <array><valuetype> +  <or><int/><float/></or></valuetype></array></varargs></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>fills an area with the current color + </p> + </text> + <group> +  <param name='curve'/> + <text><p>curve(s), <tt>({x1,y1,x2,y2,...,xn,yn})</tt>, + automatically closed.</p> +  + <p>If any given curve is inside another, it + will make a hole. + </p></text></group> + <group><returns/><text> + <p>the current object</p> + </text></group> + <group><note/><text> + <p>Lines in the polygon may <i>not</i> be crossed without + the crossing coordinate specified in both lines. + </p> + </text></group> + <group><bugs/><text> + <p>Inverted lines reported on Intel and Alpha processors. + </p> + </text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.setcolor'>setcolor</ref></p></text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='random' homogen-type='method'> + <method name='random'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><method name='random'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='seed'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Gives a randomized image;<br/> + <table><tr valign='center'> + <td><image file='predef.Image.Image.random.1.png' height='115' width='80'>pattern.c1.png</image></td> + <td><image file='predef.Image.Image.random.2.png' height='115' width='80'>pattern.c2.png</image></td> + <td><image file='predef.Image.Image.random.3.png' height='115' width='80'>pattern.c3.png</image></td> + <td><image file='predef.Image.Image.random.4.png' height='115' width='80'>pattern.c4.png</image></td> + <td><image file='predef.Image.Image.random.5.png' height='115' width='80'>pattern.c5.png</image></td> + <td><image file='predef.Image.Image.random.6.png' height='115' width='80'>pattern.c6.png</image></td> + </tr><tr> + <td>original</td> + <td>-&gt;random()</td> + <td>-&gt;random(17)</td> + <td>greyed<br/>(same again)</td> + <td>color(red)<br/>(same again)</td> + <td>...red channel<br/></td> + </tr></table></p> +  + <p>Use with -&gt;grey() or -&gt;color() for one-color-results. + </p> + </text> + <group><returns/><text> + <p>a new image</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'>   <method name='write_lsb_rgb'>    <returntype>    <object>object </object></returntype>
5801:      </doc>   </docgroup> + <docgroup homogen-type='method'> + <method name='rotate'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='angle'><type> +  <or><int/><float/></or></type></argument> +  +  </arguments> + </method><method name='rotate'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='angle'><type> +  <or><int/><float/></or></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='rotate_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='angle'><type> +  <or><int/><float/></or></type></argument> +  +  </arguments> + </method><method name='rotate_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='angle'><type> +  <or><int/><float/></or></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Rotates an image a certain amount of degrees (360° is + a complete rotation) counter-clockwise:</p> +  + <p><table><tr valign='center'> + <td><image file='predef.Image.Image.rotate.1.png' height='115' width='80'>matrix.c4.png</image></td> + <td><image file='predef.Image.Image.rotate.2.png' height='141' width='113'>matrix.c5.png</image></td> + <td><image file='predef.Image.Image.rotate.3.png' height='141' width='113'>matrix.c6.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;rotate(15,255,0,0);</td> + <td>-&gt;rotate_expand(15);</td> + </tr></table></p> +  + <p>The "expand" variant of functions stretches the + image border pixels rather then filling with + the given or current color.</p> +  + <p>This rotate uses the <ref resolved='predef::Image.Image.skewx'>skewx</ref>() and <ref resolved='predef::Image.Image.skewy'>skewy</ref>() functions.</p> + </text> + <group> +  <param name='angle'/> + <text><p>the number of degrees to rotate</p></text></group> + <group> +  <param name='r'/> +  <param name='g'/> +  <param name='b'/> + <text><p>color to fill with; default is current</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='rotate_ccw' homogen-type='method'> + <method name='rotate_ccw'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>rotates an image counter-clockwise, 90 degrees.</p> +  + <p><table><tr valign='center'> + <td><image file='predef.Image.Image.rotate_ccw.1.png' height='115' width='80'>matrix.c7.png</image></td> + <td><image file='predef.Image.Image.rotate_ccw.2.png' height='80' width='115'>matrix.c8.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;rotate_ccw();</td> + </tr></table> + </p> + </text> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='rotate_cw' homogen-type='method'> + <method name='rotate_cw'> +  <returntype> +  <object>object </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p>rotates an image clockwise, 90 degrees.</p> +  + <p><table><tr valign='center'> + <td><image file='predef.Image.Image.rotate_cw.1.png' height='115' width='80'>matrix.c9.png</image></td> + <td><image file='predef.Image.Image.rotate_cw.2.png' height='80' width='115'>matrix.c10.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;rotate_cw();</td> + </tr></table></p> + </text> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='scale' homogen-type='method'> + <method name='scale'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='factor'><type><float/></type></argument> +  +  </arguments> + </method><method name='scale'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument><value>0.5</value></argument> +  </arguments> + </method><method name='scale'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='xfactor'><type><float/></type></argument> + <argument name='yfactor'><type><float/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>scales the image with a factor, + 0.5 is an optimized case.</p> + </text> + <group> +  <param name='factor'/> + <text><p>factor to use for both x and y</p></text></group> + <group> +  <param name='xfactor'/> +  <param name='yfactor'/> + <text><p>separate factors for x and y + </p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-name='scale' homogen-type='method'> + <method name='scale'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='newxsize'><type><int/></type></argument> + <argument name='newysize'><type><int/></type></argument> +  +  </arguments> + </method><method name='scale'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument><value>0</value></argument><argument name='newysize'><type><int/></type></argument> +  +  </arguments> + </method><method name='scale'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='newxsize'><type><int/></type></argument> + <argument><value>0</value></argument> +  </arguments> + </method><doc> + <text> + <p>scales the image to a specified new size, + if one of newxsize or newysize is 0, + the image aspect ratio is preserved.</p> + </text> + <group> +  <param name='newxsize'/> +  <param name='newysize'/> + <text><p>new image size in pixels + </p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> + <group><note/><text> + <p>resulting image will be 1x1 pixels, at least</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='select_from' homogen-type='method'>   <method name='select_from'>    <returntype>
5943:      </doc>   </docgroup> + <docgroup homogen-type='method'> + <method name='skewx'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='yfactor'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='yfactor'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='yfactor'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='x'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewx_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='yfactor'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Skews an image an amount of pixels or a factor; + a skew-x is a transformation:</p> +  + <p><table><tr valign='center'> + <td><image file='predef.Image.Image.skewx.1.png' height='115' width='80'>matrix.c11.png</image></td> + <td><image file='predef.Image.Image.skewx.2.png' height='115' width='95'>matrix.c12.png</image></td> + <td><image file='predef.Image.Image.skewx.3.png' height='115' width='95'>matrix.c13.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;skewx(15,255,0,0);</td> + <td>-&gt;skewx_expand(15);</td> + </tr></table> + </p> + </text> + <group> +  <param name='x'/> + <text><p>the number of pixels +  The "expand" variant of functions stretches the +  image border pixels rather then filling with +  the given or current color.</p></text></group> + <group> +  <param name='yfactor'/> + <text><p>best described as: x=yfactor*this-&gt;ysize()</p></text></group> + <group> +  <param name='r'/> +  <param name='g'/> +  <param name='b'/> + <text><p>color to fill with; default is current</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup> + <docgroup homogen-type='method'> + <method name='skewy'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='xfactor'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='y'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='xfactor'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='y'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='xfactor'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='y'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><method name='skewy_expand'> +  <returntype> +  <object>object </object></returntype> +  <arguments><argument name='xfactor'><type><int/></type></argument> + <argument name='r'><type><int/></type></argument> + <argument name='g'><type><int/></type></argument> + <argument name='b'><type><int/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>Skews an image an amount of pixels or a factor; + a skew-y is a transformation:</p> +  + <p><table><tr valign='center'> + <td><image file='predef.Image.Image.skewy.1.png' height='115' width='80'>matrix.c14.png</image></td> + <td><image file='predef.Image.Image.skewy.2.png' height='130' width='80'>matrix.c15.png</image></td> + <td><image file='predef.Image.Image.skewy.3.png' height='130' width='80'>matrix.c16.png</image></td> + </tr><tr valign='center'> + <td>original</td> + <td>-&gt;skewy(15,255,0,0);</td> + <td>-&gt;skewy_expand(15);</td> + </tr></table></p> +  + <p>The "expand" variant of functions stretches the + image border pixels rather then filling with + the given or current color.</p> + </text> + <group> +  <param name='y'/> + <text><p>the number of pixels</p></text></group> + <group> +  <param name='xfactor'/> + <text><p>best described as: t=xfactor*this-&gt;xsize()</p></text></group> + <group> +  <param name='r'/> +  <param name='g'/> +  <param name='b'/> + <text><p>color to fill with; default is current</p></text></group> + <group><returns/><text> + <p>the new image object</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='test' homogen-type='method'>   <method name='test'>    <returntype>
6029:      </doc>   </docgroup> + <docgroup homogen-name='toppm' homogen-type='method'> + <method name='toppm'> +  <returntype> +  <object>string </object></returntype> +  <arguments> +  </arguments> + </method><doc> + <text> + <p><b>compability method</b> - do not use in new programs.</p> +  + <p>See <ref resolved='predef::Image.PNM.encode'>Image.PNM.encode</ref>(). + </p> + </text> + <group><returns/><text> + <p>PPM data</p> + </text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='tuned_box' homogen-type='method'>   <method name='tuned_box'>    <returntype>
6087:      </doc>   </docgroup> + <docgroup homogen-name='turbulence' homogen-type='method'> + <method name='turbulence'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='colorrange'><type> +  <array><valuetype> +  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> +  +  </arguments> + </method><method name='turbulence'> +  <returntype> +  <object>void </object></returntype> +  <arguments><argument name='colorrange'><type> +  <array><valuetype> +  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> + <argument name='octaves'><type><int/></type></argument> + <argument name='scale'><type><float/></type></argument> + <argument name='xdiff'><type><float/></type></argument> + <argument name='ydiff'><type><float/></type></argument> + <argument name='cscale'><type><float/></type></argument> +  +  </arguments> + </method><doc> + <text> + <p>gives a new image with the old image's size, + filled width a 'turbulence' pattern</p> +  + <p>The random seed may be different with each instance of pike.</p> +  + <p>Example: <br/> + <tt>-&gt;turbulence( ({0,({229,204,204}), 0.9,({229,20,20}), 0.9,Color.black}) );</tt> + <br/><image file='predef.Image.Image.turbulence.1.png' height='100' width='200'>pattern.c7.png</image></p> + </text> + <group> +  <param name='colorrange'/> + <text><p>colorrange table</p></text></group> + <group> +  <param name='octaves'/> + <text><p>default value is 3</p></text></group> + <group> +  <param name='scale'/> + <text><p>default value is 0.1</p></text></group> + <group> +  <param name='xdiff'/> +  <param name='ydiff'/> + <text><p>default value is 0,0</p></text></group> + <group> +  <param name='cscale'/> + <text><p>default value is 1</p></text></group> + <group><seealso/><text> + <p><ref resolved='predef::Image.Image.noise'>noise</ref>, <ref resolved='predef::Image.Color'>Image.Color</ref></p></text></group> +  + </doc> + </docgroup>   <docgroup homogen-name='xsize' homogen-type='method'>   <method name='xsize'>    <returntype>
6671:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.GIF'>Image.GIF</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.GIF'>Image.GIF</ref></p></text></group>      </doc>   <docgroup homogen-name='decode' homogen-type='method'>
6764:      <p><ref resolved='predef::Image.PNM.encode_P1'>encode_P1</ref>/<ref resolved='predef::Image.PNM.encode_P4'>encode_P4</ref>   assumes the image is black and white. Use - <ref>Image.image-&gt;threshold</ref>() or something like - <tt><ref>Image.colortable</ref>( ({({0,0,0}),({255,255,255})}) )<br/>-&gt;floyd_steinberg()<br/>-&gt;map(my_image)</tt> + <ref resolved='predef::Image.Image.threshold'>Image.Image-&gt;threshold</ref>() or something like + <tt><ref resolved='predef::Image.Colortable'>Image.Colortable</ref>( ({({0,0,0}),({255,255,255})}) )<br/>-&gt;floyd_steinberg()<br/>-&gt;map(my_image)</tt>   to get a black and white image.</p>      <p><ref resolved='predef::Image.PNM.encode_P2'>encode_P2</ref>/<ref resolved='predef::Image.PNM.encode_P5'>encode_P5</ref> assumes the image is greyscale. Use - <ref>Image.image-&gt;grey</ref>() to get a greyscale image.</p> + <ref resolved='predef::Image.Image.grey'>Image.Image-&gt;grey</ref>() to get a greyscale image.</p>      <p/>   </text>
7162:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref>Image.colortable</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.Colortable'>Image.Colortable</ref></p></text></group>      </doc>   <docgroup homogen-name='decode_pseudocolor' homogen-type='method'>
7612:    float xres = 72.0;    float yres = 72.0;    int res_unit; -  Image.colortable colormap; -  Image.colortable meta_colormap; +  Image.Colortable colormap; +  Image.Colortable meta_colormap;    array(Layer) layers = ({});    array(Channel) channels = ({});    array(Guide) guides = ({});
7656:       !class Hierarchy    { -  Image.image img; -  Image.image alpha; +  Image.Image img; +  Image.Image alpha;    int width;    int height;    int bpp;
7718:      <p><pre> Supported options    ([ -  "background":({r,g,b})||Image.color object +  "background":({r,g,b})||Image.Color object    "draw_all_layers":1,    Draw invisible layers as well   
7734:    "mark_layers":1,    Draw an outline around all (drawn) layers    -  "mark_layer_names":Image.font object, +  "mark_layer_names":Image.Font object,    Write the name of all layers using the font object,       "mark_active_layer":1,
7890:   </p>   </text>   <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.PNM'>Image.PNM</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group> + <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref>, <ref resolved='predef::Image.PNM'>Image.PNM</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group>      </doc>   <docgroup homogen-name='_decode' homogen-type='method'>
7944:   </doc>   </docgroup>   </module> - <module name='color'> - <doc> - <text> - <p> - This module keeps names and easy handling - for easy color support. It gives you an easy - way to get colors from names.</p> -  - <p>A color is here an object, containing color - information and methods for conversion, see below.</p> -  - <p><ref resolved='predef::Image.Image.color'>Image.color</ref> can be called to make a color object. - <ref resolved='predef::Image.Image.color'>Image.color()</ref> takes the following arguments: - <pre> - Image.color(string name) // "red" - Image.color(string prefix_string) // "lightblue" - Image.color(string hex_name) // "#ff00ff" - Image.color(string cmyk_string) // "%17,42,0,19.4" - Image.color(string hsv_string) // "%@327,90,32" - Image.color(int red, int green, int blue) - </pre></p> -  - <p>The color names available can be listed by using indices - on Image.color. The colors are available by name directly - as <tt>Image.color.name</tt>, too: - <pre> - ...Image.color.red... - ...Image.color.green... - or, maybe - import Image.color; - ...red... - ...green... - ...lightgreen... - </pre></p> -  - <p>Giving red, green and blue values is equal to calling - <ref resolved='predef::Image.color.rgb'>Image.color.rgb</ref>().</p> -  - <p>The prefix_string method is a form for getting modified - colors, it understands all modifiers - (<ref to='image.color.color.light'>light</ref>, - <ref to='image.color.color.dark'>dark</ref>, - <ref to='image.color.color.bright'>bright</ref>, - <ref to='image.color.color.dull'>dull</ref> and - <ref to='image.color.color.neon'>neon</ref>). Simply use - "method"+"color"; (as in <tt>lightgreen</tt>, - <tt>dullmagenta</tt>, <tt>lightdullorange</tt>).</p> -  - <p>The <tt>hex_name</tt> form is a simple - <tt>#rrggbb</tt> form, as in HTML or X-program argument. - A shorter form (<tt>#rgb</tt>) is also accepted. This - is the inverse to the <ref resolved='predef::Image.color.color.hex'>Image.color.color-&gt;hex</ref>() - method.</p> -  - <p>The <tt>cmyk_string</tt> is a string form of giving - <i>cmyk</i> (cyan, magenta, yellow, black) color. These - values are floats representing percent.</p> -  - <p>The <tt>hsv_string</tt> is another hue, saturation, value - representation, but in floats; hue is in degree range (0..360), - and saturation and value is given in percent. <i>This is not - the same as returned or given to the <ref resolved='predef::Image.color.hsv'>hsv</ref>() methods!</i></p> -  - <p> - </p> - </text> - <group><note/><text> - <p><tt>Image.color["something"]</tt> will never(!) generate an error, - but a zero_type 0, if the color is unknown. This is enough - to give the error "not present in module", if used - as <tt>Image.color.something</tt>, though.</p> -  - <p>If you are using colors from for instance a webpage, you might - want to create the color from <ref resolved='predef::Image.color.guess'>Image.color.guess</ref>(), - since that method is more tolerant for mistakes and errors.</p> -  - <p><tt>Image.color</tt>() is case- and space-sensitive. - Use <ref resolved='predef::Image.color.guess'>Image.color.guess</ref>() to catch all variants.</p> -  - <p>and subtract with a space (lower_case(x)-" ") to make - sure you get all variants.</p> -  - <p/> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.color.color.name'>Image.color.color-&gt;name</ref>, <ref resolved='predef::Image.color.color.rgb'>Image.color.color-&gt;rgb</ref>, <ref resolved='predef::Image.color.color'>Image.color.color</ref>, <ref resolved='predef::Image.color.guess'>Image.color.guess</ref>, <ref resolved='predef::Image.Image'>Image</ref>, <ref>Image.colortable</ref></p></text></group> -  - </doc> - <docgroup homogen-type='method'> - <method name='_indices'> -  <returntype> -  <array><valuetype><string/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='_values'> -  <returntype> -  <array><valuetype><object resolved='predef::Image.color._indices'/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>(ie as <tt>indices(Image.color)</tt> or <tt>values(Image.color)</tt>) - <tt>indices</tt> gives a list of all the known color names, - <tt>values</tt> gives there corresponding objects.</p> - </text> - <group><seealso/><text> - <p><ref resolved='predef::Image.Image.color'>Image.color</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='rgb'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='red'><type><int/></type></argument> - <argument name='intgreen'><type> -  <object resolved='predef::Image.color.rgb'/></type></argument> - <argument name='intblue'><type> -  <object resolved='predef::Image.color.rgb'/></type></argument> -  -  </arguments> - </method><method name='hsv'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='hue'><type><int/></type></argument> - <argument name='intsaturation'><type> -  <object resolved='predef::Image.color.rgb'/></type></argument> - <argument name='intvalue'><type> -  <object resolved='predef::Image.color.rgb'/></type></argument> -  -  </arguments> - </method><method name='cmyk'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='c'><type><float/></type></argument> - <argument name='m'><type><float/></type></argument> - <argument name='y'><type><float/></type></argument> - <argument name='k'><type><float/></type></argument> -  -  </arguments> - </method><method name='greylevel'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='level'><type><int/></type></argument> -  -  </arguments> - </method><method name='html'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='html_color'><type><string/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Creates a new color object from given red, green and blue, - hue, saturation and value, or greylevel, in color value range. - It could also be created from <i>cmyk</i> values in percent.</p> -  - <p>The <ref resolved='predef::Image.color.html'>html</ref>() method only understands the HTML color names, - or the <tt>#rrggbb</tt> form. It is case insensitive. - </p> - </text> - <group><returns/><text> - <p>the created object.</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='guess' homogen-type='method'> - <method name='guess'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument><value>string</value></argument> -  </arguments> - </method><doc> - <text> - <p>This is equivalent to - <tt><ref resolved='predef::Image.Image.color'>Image.color</ref>(lower_case(str)-" ")</tt>, - and tries the color with a prepending '#' if no - corresponding color is found. - </p> - </text> - <group><returns/><text> - <p>a color object or zero_type</p> - </text></group> -  - </doc> - </docgroup> - <class name='color'> - <doc> - <text> - <p>This is the color object. It has six readable variables, - <tt>r</tt>, <tt>g</tt>, <tt>b</tt>, for the <i>red</i>, - <i>green</i> and <i>blue</i> values, - and <tt>h</tt>, <tt>s</tt>, <tt>v</tt>, for - the <i>hue</i>, <i>saturation</i> anv <i>value</i> values.</p> - </text> -  - </doc> - <docgroup homogen-name='`==' homogen-type='method'> - <method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='other_color'><type><object resolved='predef::Image.color.color.`=='/></type></argument> -  -  </arguments> - </method><method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='rgb'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='greylevel'><type><int/></type></argument> -  -  </arguments> - </method><method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='name'><type><string/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Compares this object to another color, - or color name. Example: - <pre> - object red=Image.color.red; - object other=Image.color. ...; - object black=Image.color.black; -  - if (red==other) ... - if (red==({255,0,0})) ... - if (black==0) ... - if (red=="red") ... - </pre> - </p> - </text> - <group><returns/><text> - <p>1 or 0</p> - </text></group> - <group><note/><text> - <p>The other datatype (not color object) must be to the right!</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.color.color.`==.rgb'>rgb</ref>, <ref resolved='predef::Image.color.color.grey'>grey</ref>, <ref resolved='predef::Image.color.color.`==.name'>name</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='light'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='dark'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='neon'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='bright'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='dull'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>Color modification methods. These returns - a new color. - <table> - <tr><th>method</th><th width='50%'>effect</th> - <th>h</th><th>s</th><th>v</th><th>as</th></tr> - <tr><td>light </td><td>raise light level</td><td>±0</td><td> ±0</td><td>+50</td> - <td> -  -  - </td></tr> -  - <tr><td>dark </td><td>lower light level</td><td>±0</td><td> ±0</td><td>-50</td> - <td> -  -  - </td></tr> -  - <tr><td>bright</td><td>brighter color </td><td>±0</td><td>+50</td><td>+50</td> - <td> -  -  - </td></tr> -  - <tr><td>dull </td><td>greyer color </td><td>±0</td><td>-50</td><td>-50</td> - <td> -  -  - </td></tr> -  - <tr><td>neon </td><td>set to extreme </td><td>±0</td><td>max</td><td>max</td> - <td> - </td></tr> -  - </table></p> - </text> - <group><returns/><text> - <p>the new color object</p> - </text></group> - <group><note/><text> - <p>The opposites may not always take each other out. - The color is maximised at white and black levels, - so, for instance - <ref resolved='predef::Image.Image.color'>Image.color</ref>.white-&gt;<ref resolved='predef::Image.color.color.light'>light</ref>()-&gt;<ref resolved='predef::Image.color.color.dark'>dark</ref>() - doesn't give the white color back, but the equal to - <ref resolved='predef::Image.Image.color'>Image.color</ref>.white-&gt;<ref resolved='predef::Image.color.color.dark'>dark</ref>(), since - white can't get any <ref resolved='predef::Image.color.color.light'>light</ref>er.</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='cast' homogen-type='method'> - <method name='cast'> -  <returntype> -  <or><array/><object>string </object></or></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>cast the object to an array, representing red, green - and blue (equal to <tt>-&gt;<ref resolved='predef::Image.color.color.rgb'>rgb</ref>()</tt>), or - to a string, giving the name (equal to <tt>-&gt;<ref resolved='predef::Image.color.color.name'>name</ref>()</tt>).</p> - </text> - <group><returns/><text> - <p>the name as string or rgb as array</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.color.color.rgb'>rgb</ref>, <ref resolved='predef::Image.color.color.name'>name</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='rgb'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='hsv'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='cmyk'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='greylevel'> -  <returntype> -  <object>int </object></returntype> -  <arguments> -  </arguments> - </method><method name='greylevel'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='r'><type><int/></type></argument> - <argument name='intg'><type> -  <object resolved='predef::Image.color.color.rgb'/></type></argument> - <argument name='intb'><type> -  <object resolved='predef::Image.color.color.rgb'/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>This is methods of getting information from an - <ref resolved='predef::Image.color.color'>Image.color.color</ref> object.</p> -  - <p>They give an array of - red, green and blue (rgb) values (color value),<br/> - hue, saturation and value (hsv) values (range as color value), <br/> - cyan, magenta, yellow, black (cmyk) values (in percent) <br/> - or the greylevel value (range as color value).</p> -  - <p>The greylevel is calculated by weighting red, green - and blue. Default weights are 87, 127 and 41, respective, - and could be given by argument. - </p> - </text> - <group><returns/><text> - <p>array(int) respective int</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.color.color'>Image.color.color</ref>, <ref resolved='predef::Image.color.color.grey'>grey</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='create' homogen-type='method'> - <method name='create'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>This is the main <ref resolved='predef::Image.color.color'>Image.color.color</ref> creation - method, mostly for internal use. - </p> - </text> -  - </doc> - </docgroup> - <docgroup homogen-name='grey' homogen-type='method'> - <method name='grey'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='grey'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='red'><type><int/></type></argument> - <argument name='green'><type><int/></type></argument> - <argument name='blue'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Gives a new color, containing a grey color, - which is calculated by the <ref resolved='predef::Image.color.color.greylevel'>greylevel</ref> method.</p> - </text> - <group><returns/><text> - <p>a new <ref resolved='predef::Image.color.color'>Image.color.color</ref> object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.color.color.greylevel'>greylevel</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='hex'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='hex'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='n'><type><int/></type></argument> -  -  </arguments> - </method><method name='name'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='html'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>Information methods.</p> -  - <p><ref resolved='predef::Image.color.color.hex'>hex</ref>() simply gives a string on the <tt>#rrggbb</tt> - format. If <tt>n</tt> is given, the number of significant - digits is set to this number. - (Ie, <tt>n=3</tt> gives <tt>#rrrgggbbb</tt>.)</p> -  - <p><ref resolved='predef::Image.color.color.name'>name</ref>() is a simplified method; - if the color exists in the database, the name is returned, - per default is the <ref resolved='predef::Image.color.color.hex'>hex</ref>() method use.</p> -  - <p><ref resolved='predef::Image.color.color.html'>html</ref>() gives the <tt>HTML</tt> name of - the color, or the <ref resolved='predef::Image.color.color.hex'>hex</ref>(2) if it isn't one - of the 16 <tt>HTML</tt> colors. - </p> - </text> - <group><returns/><text> - <p>a new <ref resolved='predef::Image.color.color'>Image.color.color</ref> object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.color.color.rgb'>rgb</ref>, <ref resolved='predef::Image.color.color.hsv'>hsv</ref>, <ref resolved='predef::Image.Image.color'>Image.color</ref></p></text></group> -  - </doc> - </docgroup> - </class> +    </module> - <class name='font'> - <doc> - <text> - <p/> - </text> - <group><note/><text> - <p>Short technical documentation on a font file: - This object adds the text-drawing and -creation - capabilities of the <ref resolved='predef::Image.Image'>Image</ref> module.</p> -  - <p>For simple usage, see - <ref resolved='predef::Image.font.write'>write</ref> and <ref resolved='predef::Image.font.load'>load</ref>.</p> -  - <p>other methods: <ref resolved='predef::Image.font.baseline'>baseline</ref>, - <ref resolved='predef::Image.font.height'>height</ref>, - <ref resolved='predef::Image.font.set_xspacing_scale'>set_xspacing_scale</ref>, - <ref resolved='predef::Image.font.set_yspacing_scale'>set_yspacing_scale</ref>, - <ref resolved='predef::Image.font.text_extents'>text_extents</ref></p> -  - <p><pre> -  struct file_head -  { -  unsigned INT32 cookie; - 0x464f4e54 -  unsigned INT32 version; - 1 -  unsigned INT32 chars; - number of chars -  unsigned INT32 height; - height of font -  unsigned INT32 baseline; - font baseline -  unsigned INT32 o[1]; - position of char_head's -  } *fh; -  struct char_head -  { -  unsigned INT32 width; - width of this character -  unsigned INT32 spacing; - spacing to next character -  unsigned char data[1]; - pixmap data (1byte/pixel) -  } *ch; -  -  version 2: -  -  -  On-disk syntax (everything in N.B.O), int is 4 bytes, a byte is 8 bits: -  -  pos -  0 int cookie = 'FONT'; or 0x464f4e54 -  4 int version = 2; 1 was the old version without the last four chars -  8 int numchars; Always 256 in this version of the dump program -  12 int height; in (whole) pixels -  16 int baseline; in (whole) pixels -  20 char direction; 1==right to left, 0 is left to right -  21 char format; Font format -  22 char colortablep; Colortable format -  23 char kerningtablep; Kerning table format -  -  24 int offsets[numchars]; pointers into the data, realative to &amp;cookie. -  [colortable] -  [kerningtable] -  -  At each offset: -  -  -  0 int width; in pixels -  4 int spacing; in 1/1000:th of a pixels -  8 char data[]; Enough data to plot width * font-&gt;height pixels -  Please note that if width is 0, there is no data. -  -  Font formats: -  id type -  0 Raw 8bit data -  1 RLE encoded data, char length, char data, 70% more compact than raw data -  2 ZLib compressed data 60% more compact than RLE -  -  Colortable types: -  0 No colortable (the data is an alpha channel) -  1 24bit RGB with alpha (index-&gt;color, 256*4 bytes, rgba) -  2 8bit Greyscale with alpha (index-&gt;color, 256*2 bytes) -  -  Kerningtable types: -  0 No kerning table -  1 numchars*numchars entries, each a signed char with the kerning value -  2 numchar entries, each with a list of kerning pairs, like this: -  int len -  len * (short char, short value) -  **! </pre> - </p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref></p></text></group> -  - </doc> - <docgroup homogen-name='baseline' homogen-type='method'> - <method name='baseline'> -  <returntype> -  <object>int </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <group><returns/><text> - <p>font baseline (pixels from top)</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.font.height'>height</ref>, <ref resolved='predef::Image.font.text_extents'>text_extents</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='create' homogen-type='method'> - <method name='create'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='filename'><type><string/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Loads a font file to this font object. - Similar to <ref resolved='predef::Image.font.load'>load</ref>().</p> - </text> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='height'> -  <returntype> -  <object>int </object></returntype> -  <arguments> -  </arguments> - </method><method name='text_extents'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments><argument name='text'><type><string/></type></argument> - <argument><value>...</value></argument> -  </arguments> - </method><doc> - <text> - <p>Calculate extents of a text-image, - that would be created by calling <ref resolved='predef::Image.font.write'>write</ref> - with the same arguments.</p> - </text> - <group> -  <param name='text, ...'/> - <text><p>One or more lines of text.</p></text></group> - <group><returns/><text> - <p>an array of width and height</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.font.baseline'>baseline</ref>, <ref resolved='predef::Image.font.text_extents'>text_extents</ref>, <ref resolved='predef::Image.font.write'>write</ref>, <ref resolved='predef::Image.font.height'>height</ref>, <ref resolved='predef::Image.font.baseline'>baseline</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='load' homogen-type='method'> - <method name='load'> -  <returntype> -  <or><object resolved='predef::Image.font.load'/><object>int </object></or></returntype> -  <arguments><argument name='filename'><type><string/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Loads a font file to this font object.</p> - </text> - <group> -  <param name='filename'/> - <text><p>Font file - </p></text></group> - <group><returns/><text> - <p>zero upon failure, font object upon success</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.font.write'>write</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='set_xspacing_scale'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='scale'><type><float/></type></argument> -  -  </arguments> - </method><method name='set_yspacing_scale'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='scale'><type><float/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Set spacing scale to write characters closer - or more far away. This does not change scale - of character, only the space between them.</p> - </text> - <group> -  <param name='scale'/> - <text><p>what scale to use</p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='write' homogen-type='method'> - <method name='write'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='text'><type><string/></type></argument> - <argument><value>...</value></argument> -  </arguments> - </method><doc> - <text> - <p>Writes some text; thus creating an image object - that can be used as mask or as a complete picture.</p> - </text> - <group> -  <param name='text, ...'/> - <text><p>One or more lines of text.</p></text></group> - <group><returns/><text> - <p>an <ref resolved='predef::Image.image'>Image.image</ref> object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.font.text_extents'>text_extents</ref>, <ref resolved='predef::Image.font.load'>load</ref>, <ref resolved='predef::Image.image.paste_mask'>Image.image-&gt;paste_mask</ref>, <ref resolved='predef::Image.image.paste_alpha_color'>Image.image-&gt;paste_alpha_color</ref></p></text></group> -  - </doc> - </docgroup> - </class> - <class name='image'> - <docgroup homogen-type='method'> - <method name='gif_begin'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='gif_begin'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='num_colors'><type><int/></type></argument> -  -  </arguments> - </method><method name='gif_begin'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='colors'><type> -  <array><valuetype> -  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> -  -  </arguments> - </method><method name='gif_end'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='gif_netscape_loop'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='loops'><type><int/></type></argument> -  -  </arguments> - </method><method name='togif'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='togif'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='trans_r'><type><int/></type></argument> - <argument name='trans_g'><type><int/></type></argument> - <argument name='trans_b'><type><int/></type></argument> -  -  </arguments> - </method><method name='togif'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='num_colors'><type><int/></type></argument> - <argument name='trans_r'><type><int/></type></argument> - <argument name='trans_g'><type><int/></type></argument> - <argument name='trans_b'><type><int/></type></argument> -  -  </arguments> - </method><method name='togif'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='colors'><type> -  <array><valuetype> -  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> - <argument name='trans_r'><type><int/></type></argument> - <argument name='trans_g'><type><int/></type></argument> - <argument name='trans_b'><type><int/></type></argument> -  -  </arguments> - </method><method name='togif_fs'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='togif_fs'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='trans_r'><type><int/></type></argument> - <argument name='trans_g'><type><int/></type></argument> - <argument name='trans_b'><type><int/></type></argument> -  -  </arguments> - </method><method name='togif_fs'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='num_colors'><type><int/></type></argument> - <argument name='trans_r'><type><int/></type></argument> - <argument name='trans_g'><type><int/></type></argument> - <argument name='trans_b'><type><int/></type></argument> -  -  </arguments> - </method><method name='togif_fs'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='colors'><type> -  <array><valuetype> -  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> - <argument name='trans_r'><type><int/></type></argument> - <argument name='trans_g'><type><int/></type></argument> - <argument name='trans_b'><type><int/></type></argument> -  -  </arguments> - </method><method name='gif_add'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='gif_add_fs'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='gif_add_nomap'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='gif_add_fs_nomap'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><method name='*'> -  <returntype> -  <object>string gif_add</object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><method name='*'> -  <returntype> -  <object>string gif_add</object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> - <argument name='delay_cs'><type><int/></type></argument> -  -  </arguments> - </method><method name='*'> -  <returntype> -  <object>string gif_add</object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> - <argument name='num_colors'><type><int/></type></argument> - <argument name='delay_cs'><type><int/></type></argument> -  -  </arguments> - </method><method name='*'> -  <returntype> -  <object>string gif_add</object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> - <argument name='colors'><type> -  <array><valuetype> -  <array><valuetype><int/></valuetype></array></valuetype></array></type></argument> - <argument name='delay_cs'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>old GIF API compatibility function. Don't use - in any new code.</p> -  - <p><table> - <tr><td/><td>is replaced by</td></tr> - <tr><td>gif_begin</td><td><ref resolved='predef::Image.GIF.header_block'>Image.GIF.header_block</ref></td></tr> - <tr><td>gif_end</td><td><ref resolved='predef::Image.GIF.end_block'>Image.GIF.end_block</ref></td></tr> - <tr><td>gif_netscape_loop</td><td><ref resolved='predef::Image.GIF.netscape_loop_block'>Image.GIF.netscape_loop_block</ref></td></tr> - <tr><td>togif</td><td><ref resolved='predef::Image.GIF.encode'>Image.GIF.encode</ref></td></tr> - <tr><td>togif_fs</td><td><ref resolved='predef::Image.GIF.encode'>Image.GIF.encode</ref>¹</td></tr> - <tr><td>gif_add</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>¹²</td></tr> - <tr><td>gif_add_fs</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>¹</td></tr> - <tr><td>gif_add_nomap</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>²</td></tr> - <tr><td>gif_add_fs_nomap</td><td><ref resolved='predef::Image.GIF.render_block'>Image.GIF.render_block</ref>¹²</td></tr> - </table></p> -  - <p>¹ Use <ref>Image.colortable</ref> to get whatever dithering - you want.</p> -  - <p>² local map toggle is sent as an argument - </p> - </text> - <group><returns/><text> - <p>GIF data.</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='`&amp;' homogen-type='method'> - <method name='`&amp;'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`&amp;'/></type></argument> -  -  </arguments> - </method><method name='`&amp;'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`&amp;'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>makes a new image out of the minimum pixels values - </p> - </text> - <group> -  <param name='operand'/> - <text><p>the other image to compare with; - the images must have the same size.</p></text></group> - <group> -  <param name='color'/> - <text><p>an array in format ({r,g,b}), this is equal - to using an uniform-colored image.</p></text></group> - <group> -  <param name='value'/> - <text><p>equal to ({value,value,value}).</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.`-'>`-</ref>, <ref resolved='predef::Image.image.`+'>`+</ref>, <ref resolved='predef::Image.image.`|'>`|</ref>, <ref resolved='predef::Image.image.`*'>`*</ref>, <ref resolved='predef::Image.image.add_layers'>add_layers</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='`*' homogen-type='method'> - <method name='`*'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`*'/></type></argument> -  -  </arguments> - </method><method name='`*'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`*'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Multiplies pixel values and creates a new image. - This can be useful to lower the values of an image, - making it greyer, for instance:</p> -  - <p><pre>image=image*128+64;</pre> - </p> - </text> - <group> -  <param name='operand'/> - <text><p>the other image to multiply with; - the images must have the same size.</p></text></group> - <group> -  <param name='color'/> - <text><p>an array in format ({r,g,b}), this is equal - to using an uniform-colored image.</p></text></group> - <group> -  <param name='value'/> - <text><p>equal to ({value,value,value}). - </p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.`-'>`-</ref>, <ref resolved='predef::Image.image.`+'>`+</ref>, <ref resolved='predef::Image.image.`|'>`|</ref>, <ref resolved='predef::Image.image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.image.add_layers'>add_layers</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='`+' homogen-type='method'> - <method name='`+'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`+'/></type></argument> -  -  </arguments> - </method><method name='`+'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`+'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>adds two images; values are truncated at 255.</p> - </text> - <group> -  <param name='operand'/> - <text><p>the image which to add.</p></text></group> - <group> -  <param name='color'/> - <text><p>an array in format ({r,g,b}), this is equal - to using an uniform-colored image.</p></text></group> - <group> -  <param name='value'/> - <text><p>equal to ({value,value,value}).</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.`-'>`-</ref>, <ref resolved='predef::Image.image.`|'>`|</ref>, <ref resolved='predef::Image.image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.image.`*'>`*</ref>, <ref resolved='predef::Image.image.add_layers'>add_layers</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='`-' homogen-type='method'> - <method name='`-'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`-'/></type></argument> -  -  </arguments> - </method><method name='`-'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`-'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>makes a new image out of the difference</p> - </text> - <group> -  <param name='operand'/> - <text><p>the other image to compare with; - the images must have the same size.</p></text></group> - <group> -  <param name='color'/> - <text><p>an array in format ({r,g,b}), this is equal - to using an uniform-colored image.</p></text></group> - <group> -  <param name='value'/> - <text><p>equal to ({value,value,value}).</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.`+'>`+</ref>, <ref resolved='predef::Image.image.`|'>`|</ref>, <ref resolved='predef::Image.image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.image.`*'>`*</ref>, <ref resolved='predef::Image.image.add_layers'>add_layers</ref>, <ref resolved='predef::Image.image.min'>min</ref>, <ref resolved='predef::Image.image.max'>max</ref>, <ref resolved='predef::Image.image.`=='>`==</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`=='/></type></argument> -  -  </arguments> - </method><method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`=='> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><method name='`&lt;'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`=='/></type></argument> -  -  </arguments> - </method><method name='`&lt;'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`&lt;'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><method name='`&gt;'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`=='/></type></argument> -  -  </arguments> - </method><method name='`&gt;'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`&gt;'> -  <returntype> -  <object>int </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Compares an image with another image or a color.</p> -  - <p>Comparision is strict and on pixel-by-pixel basis. - (Means if not all pixel r,g,b values are - correct compared with the corresponding - pixel values, 0 is returned.) - </p> - </text> - <group> -  <param name='operand'/> - <text><p>the other image to compare with; - the images must have the same size.</p></text></group> - <group> -  <param name='color'/> - <text><p>an array in format ({r,g,b}), this is equal - to using an uniform-colored image.</p></text></group> - <group> -  <param name='value'/> - <text><p>equal to ({value,value,value}).</p> -  - <p/></text></group> - <group><returns/><text> - <p>true (1) or false (0).</p> - </text></group> - <group><note/><text> - <p>`&lt; or `&gt; on empty ("no image") image objects or images - with different size will result in an error. - `== is always true on two empty image objects and - always false if one and only one of the image objects - is empty or the images differs in size.</p> -  - <p>a&gt;=b and a&lt;=b between objects is equal to !(a&lt;b) and !(a&gt;b), - which may not be what you want (since both &lt; and &gt; can return - false, comparing the same images).</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.`-'>`-</ref>, <ref resolved='predef::Image.image.`+'>`+</ref>, <ref resolved='predef::Image.image.`|'>`|</ref>, <ref resolved='predef::Image.image.`*'>`*</ref>, <ref resolved='predef::Image.image.`&amp;'>`&amp;amp;</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='`|' homogen-type='method'> - <method name='`|'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='operand'><type><object resolved='predef::Image.image.`|'/></type></argument> -  -  </arguments> - </method><method name='`|'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='color'><type> -  <array><valuetype><int/></valuetype></array></type></argument> -  -  </arguments> - </method><method name='`|'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='value'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>makes a new image out of the maximum pixels values - </p> - </text> - <group> -  <param name='operand'/> - <text><p>the other image to compare with; - the images must have the same size.</p></text></group> - <group> -  <param name='color'/> - <text><p>an array in format ({r,g,b}), this is equal - to using an uniform-colored image.</p></text></group> - <group> -  <param name='value'/> - <text><p>equal to ({value,value,value}).</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.`-'>`-</ref>, <ref resolved='predef::Image.image.`+'>`+</ref>, <ref resolved='predef::Image.image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.image.`*'>`*</ref>, <ref resolved='predef::Image.image.add_layers'>add_layers</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='add_layers' homogen-type='method'> - <method name='add_layers'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='layer0'><type> -  <array><valuetype> -  <or><int/><object resolved='predef::Image.image.add_layers'/></or></valuetype></array></type></argument> - <argument><value>...</value></argument> -  </arguments> - </method><method name='add_layers'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='x1'><type><int/></type></argument> - <argument name='y1'><type><int/></type></argument> - <argument name='x2'><type><int/></type></argument> - <argument name='y2'><type><int/></type></argument> - <argument name='layer0'><type> -  <array><valuetype> -  <or><int/><object resolved='predef::Image.image.add_layers'/></or></valuetype></array></type></argument> - <argument><value>...</value></argument> -  </arguments> - </method><doc> - <text> - <p>Using the called object as base, adds layers using masks, - opaque channel values and special methods.</p> -  - <p>The destination image can also be cropped, thus - speeding up the process.</p> -  - <p>Each array in the layers array is one of: - <pre> - ({object image,object|int mask}) - ({object image,object|int mask,int opaque_value}) - ({object image,object|int mask,int opaque_value,int method}) - </pre> - Given 0 as mask means the image is totally opaque.</p> -  - <p>Default opaque value is 255, only using the mask.</p> -  - <p>Methods for now are: - <pre> - 0 no operation (just paste with mask, default) - 1 maximum (`|) - 2 minimum (`&amp;) - 3 multiply (`*) - 4 add (`+) - 5 diff (`-) - </pre> - The layer image and the current source are calculated - through the given method and then pasted using the mask - and the opaque channel value.</p> -  - <p>All given images must be the same size. - </p> - </text> - <group> -  <param name='layer0'/> - <text><p>image to paste</p></text></group> - <group> -  <param name='x1'/> -  <param name='y1'/> -  <param name='x2'/> -  <param name='y2'/> - <text><p>rectangle for cropping - </p></text></group> - <group><returns/><text> - <p>a new image object</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.image.paste_alpha_color'>paste_alpha_color</ref>, <ref resolved='predef::Image.image.`|'>`|</ref>, <ref resolved='predef::Image.image.`&amp;'>`&amp;amp;</ref>, <ref resolved='predef::Image.image.`*'>`*</ref>, <ref resolved='predef::Image.image.`+'>`+</ref>, <ref resolved='predef::Image.image.`-'>`-</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='apply_max' homogen-type='method'> - <method name='apply_max'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='matrix'><type> -  <array><valuetype> -  <array><valuetype> -  <or><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></valuetype></array></type></argument> -  -  </arguments> - </method><method name='apply_max'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='matrix'><type> -  <array><valuetype> -  <array><valuetype> -  <or><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></valuetype></array></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='apply_max'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='matrix'><type> -  <array><valuetype> -  <array><valuetype> -  <or><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></valuetype></array></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> - <argument name='div'><type> -  <or><int/><float/></or></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>This is the same as apply_matrix, but it uses the maximum - instead.</p> -  - <p>This function is not very fast. - </p> - </text> - <group> -  <param name='array'/> - <text><p>the matrix; innermost is a value or an array with red, green, blue - values for red, green, blue separation.</p></text></group> - <group> -  <param name='r'/> -  <param name='g'/> -  <param name='b'/> - <text><p>base level of result, default is zero</p></text></group> - <group> -  <param name='div'/> - <text><p>division factor, default is 1.0.</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='average'> -  <returntype> -  <array><valuetype><float/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='min'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='max'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='sum'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='sumf'> -  <returntype> -  <array><valuetype><float/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>Gives back the average, minimum, maximum color value, - and the sum of all pixel's color value. - </p> - </text> - <group><note/><text> - <p>sum() values can wrap! Most systems only have 31 bits - available for positive integers. (Meaning, be careful - with images that have more than 8425104 pixels.)</p> -  - <p>average() and sumf() may also wrap, but on a line basis. - (Meaning, be careful with images that are wider -  than 8425104 pixels.) These functions may have a precision - problem instead, during to limits in the 'double' C type and/or - 'float' Pike type.</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='dct' homogen-type='method'> - <method name='dct'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='newx'><type><int/></type></argument> - <argument name='newy'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Scales the image to a new size.</p> -  - <p>Method for scaling is rather complex; - the image is transformed via a cosine transform, - and then resampled back.</p> -  - <p>This gives a quality-conserving upscale, - but the algorithm used is n*n+n*m, where n - and m is pixels in the original and new image.</p> -  - <p>Recommended wrapping algorithm is to scale - overlapping parts of the image-to-be-scaled.</p> -  - <p>This functionality is actually added as an - true experiment, but works... - </p> - </text> - <group> -  <param name='newx'/> -  <param name='newy'/> - <text><p>new image size in pixels - </p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><note/><text> - <p>Do NOT use this function if you don't know what - you're dealing with! Read some signal theory first...</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='find_min'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='find_max'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><method name='find_min'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments><argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='find_max'> -  <returntype> -  <array><valuetype><int/></valuetype></array></returntype> -  <arguments><argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Gives back the position of the minimum or maximum - pixel value, weighted to grey. - </p> - </text> - <group> -  <param name='r'/> -  <param name='g'/> -  <param name='b'/> - <text><p>weight of color, default is r=87,g=127,b=41, same - as the <ref>grey</ref>() method.</p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='frompnm'> -  <returntype> -  <or><object resolved='predef::Image.image.frompnm'/><object>string </object></or></returntype> -  <arguments><argument name='pnm'><type><string/></type></argument> -  -  </arguments> - </method><method name='fromppm'> -  <returntype> -  <or><object resolved='predef::Image.image.frompnm'/><object>string </object></or></returntype> -  <arguments><argument name='pnm'><type><string/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p><b>compability method</b> - do not use in new programs.</p> -  - <p>See <ref resolved='predef::Image.PNM.decode'>Image.PNM.decode</ref>(). - </p> - </text> - <group> -  <param name='pnm'/> - <text><p>pnm data, as a string</p></text></group> - <group><returns/><text> - <p>the called object or a hint of what wronged.</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='make_ascii' homogen-type='method'> - <method name='make_ascii'> -  <returntype> -  <object>string </object></returntype> -  <arguments><argument name='orient1'><type><object resolved='predef::Image.image.make_ascii'/></type></argument> - <argument name='objectorient2'><type> -  <object resolved='predef::Image.image.make_ascii'/></type></argument> - <argument name='objectorient3'><type> -  <object resolved='predef::Image.image.make_ascii'/></type></argument> - <argument name='objectorient4'><type> -  <object resolved='predef::Image.image.make_ascii'/></type></argument> - <argument name='int|voidxsize'><type> -  <object resolved='predef::Image.image.make_ascii'/></type></argument> - <argument name='int|voidysize'><type> -  <object resolved='predef::Image.image.make_ascii'/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>This method creates a string that looks like - the image. Example: - <pre> -  //Stina is an image with a cat. -  array(object) Stina4=Stina-&gt;orient4(); -  Stina4[1]*=215; -  Stina4[3]*=215; -  string foo=Stina-&gt;make_ascii(@Stina4,40,4,8); - </pre> - </p> - </text> - <group><returns/><text> - <p>some nice acsii-art.</p> - </text></group> - <group><note/><text> - <p>Experimental. -  <pre> | / - \ -  hue= 0 64 128 192 (=red in an hsv image) -  </pre></p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.orient'>orient</ref>, <ref resolved='predef::Image.image.orient4'>orient4</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='match' homogen-type='method'> - <method name='match'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='scale'><type> -  <or><int/><float/></or></type></argument> - <argument name='objectneedle'><type> -  <object resolved='predef::Image.image.match'/></type></argument> -  -  </arguments> - </method><method name='match'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='scale'><type> -  <or><int/><float/></or></type></argument> - <argument name='objectneedle'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='objecthaystack_cert'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='objectneedle_cert'><type> -  <object resolved='predef::Image.image.match'/></type></argument> -  -  </arguments> - </method><method name='match'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='scale'><type> -  <or><int/><float/></or></type></argument> - <argument name='objectneedle'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='objecthaystack_avoid'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='intfoo'><type> -  <object resolved='predef::Image.image.match'/></type></argument> -  -  </arguments> - </method><method name='match'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='scale'><type> -  <or><int/><float/></or></type></argument> - <argument name='objectneedle'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='objecthaystack_cert'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='objectneedle_cert'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='objecthaystack_avoid'><type> -  <object resolved='predef::Image.image.match'/></type></argument> - <argument name='intfoo'><type> -  <object resolved='predef::Image.image.match'/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>This method creates an image that describes the - match in every pixel in the image and the - needle-Image.</p> -  - <p><pre> -  new pixel value = -  sum( abs(needle_pixel-haystack_pixel)) - </pre></p> -  - <p>The new image only have the red rgb-part set.</p> -  - <p/> - </text> - <group> -  <param name='scale'/> - <text><p>Every pixel is divided with this value. - Note that a proper value here depends on - the size of the neadle. - </p></text></group> - <group> -  <param name='needle'/> - <text><p>The image to use for the matching. - </p></text></group> - <group> -  <param name='haystack_cert'/> - <text><p>This image should be the same size as - the image itselves. A non-white-part of the - haystack_cert-image modifies the output - by lowering it. - </p></text></group> - <group> -  <param name='needle_cert'/> - <text><p>The same, but for the needle-image. - </p></text></group> - <group> -  <param name='foo'/> -  <param name='haystack_avoid'/> - <text><p>This image should be the same size as - the image itselves. If foo is less than the red - value in haystack_avoid the corresponding - matching-calculating is not calculated. The avoided parts - are drawn in the color 0,100,0. - </p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><note/><text> - <p>Experimental.</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.phasev'>phasev</ref>, <ref resolved='predef::Image.image.phaseh'>phaseh</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='mirrorx' homogen-type='method'> - <method name='mirrorx'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>mirrors an image: - <table><tr valign='center'> - <td><image file='predef.Image.image.mirrorx.1.png' height='115' width='80'>matrix.c0.png</image></td> - <td><image file='predef.Image.image.mirrorx.2.png' height='115' width='80'>matrix.c1.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;mirrorx();</td> - </tr></table></p> - </text> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='mirrory' homogen-type='method'> - <method name='mirrory'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>mirrors an image: - <table><tr valign='center'> - <td><image file='predef.Image.image.mirrory.1.png' height='115' width='80'>matrix.c2.png</image></td> - <td><image file='predef.Image.image.mirrory.2.png' height='115' width='80'>matrix.c3.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;mirrory();</td> - </tr></table> - </p> - </text> -  - </doc> - </docgroup> - <docgroup homogen-name='noise' homogen-type='method'> - <method name='noise'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='colorrange'><type> -  <array><valuetype> -  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> -  -  </arguments> - </method><method name='noise'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='colorrange'><type> -  <array><valuetype> -  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> - <argument name='scale'><type><float/></type></argument> - <argument name='xdiff'><type><float/></type></argument> - <argument name='ydiff'><type><float/></type></argument> - <argument name='cscale'><type><float/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Gives a new image with the old image's size, - filled width a 'noise' pattern.</p> -  - <p>The random seed may be different with each instance of pike.</p> -  - <p>Example: - <tt>-&gt;noise( ({0,({255,0,0}), 0.3,({0,255,0}), 0.6,({0,0,255}), 0.8,({255,255,0})}), 0.2,0.0,0.0,1.0 );</tt> - <br/> - </p> - </text> - <group> -  <param name='colorrange'/> - <text><p>colorrange table</p></text></group> - <group> -  <param name='scale'/> - <text><p>default value is 0.1</p></text></group> - <group> -  <param name='xdiff'/> -  <param name='ydiff'/> - <text><p>default value is 0,0</p></text></group> - <group> -  <param name='cscale'/> - <text><p>default value is 1</p></text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.turbulence'>turbulence</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='orient'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument><value>void|array(object)</value></argument> -  </arguments> - </method><method name='orient4'> -  <returntype> -  <array><valuetype><object resolved='predef::Image.image.orient'/></valuetype></array></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>Draws images describing the orientation - of the current image.</p> -  - <p><tt>orient</tt> gives an HSV image - (run a <ref>hsv_to_rgb</ref> pass on it - to get a viewable image). - corresponding to the angle of the - orientation: - <pre> | / - \ -  hue= 0 64 128 192 (=red in an hsv image) -  purple cyan green red - </pre> - Red, green and blue channels are added - and not compared separately.</p> -  - <p>If you first use orient4 you can give its - output as input to this function.</p> -  - <p>The <tt>orient4</tt> function gives back - 4 image objects, corresponding to the - amount of different directions, see above. - </p> - </text> - <group><returns/><text> - <p>an image or an array of the four new image objects</p> - </text></group> - <group><note/><text> - <p>experimental status; may not be exact the same - output in later versions</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='paste' homogen-type='method'> - <method name='paste'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='image'><type><object resolved='predef::Image.image.paste'/></type></argument> -  -  </arguments> - </method><method name='paste'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='image'><type><object resolved='predef::Image.image.paste'/></type></argument> - <argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Pastes a given image over the current image. - </p> - </text> - <group> -  <param name='image'/> - <text><p>image to paste (may be empty, needs to be an image object)</p></text></group> - <group> -  <param name='x'/> -  <param name='y'/> - <text><p>where to paste the image; default is 0,0 - </p></text></group> - <group><returns/><text> - <p>the object called</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='paste_alpha' homogen-type='method'> - <method name='paste_alpha'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='image'><type><object resolved='predef::Image.image.paste_alpha'/></type></argument> - <argument name='alpha'><type><int/></type></argument> -  -  </arguments> - </method><method name='paste_alpha'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='image'><type><object resolved='predef::Image.image.paste_alpha'/></type></argument> - <argument name='alpha'><type><int/></type></argument> - <argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Pastes a given image over the current image, with - the specified alpha channel value.</p> -  - <p>An alpha channel value of 0 leaves nothing of the original - image in the paste area, 255 is meaningless and makes the - given image invisible. - </p> - </text> - <group> -  <param name='image'/> - <text><p>image to paste</p></text></group> - <group> -  <param name='alpha'/> - <text><p>alpha channel value</p></text></group> - <group> -  <param name='x'/> -  <param name='y'/> - <text><p>where to paste the image; default is 0,0 - </p></text></group> - <group><returns/><text> - <p>the object called</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.image.paste'>paste</ref>, <ref resolved='predef::Image.image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='paste_alpha_color' homogen-type='method'> - <method name='paste_alpha_color'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='mask'><type><object resolved='predef::Image.image.paste_alpha_color'/></type></argument> -  -  </arguments> - </method><method name='paste_alpha_color'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='mask'><type><object resolved='predef::Image.image.paste_alpha_color'/></type></argument> - <argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><method name='paste_alpha_color'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='mask'><type><object resolved='predef::Image.image.paste_alpha_color'/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='paste_alpha_color'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='mask'><type><object resolved='predef::Image.image.paste_alpha_color'/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> - <argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Pastes a given color over the current image, - using the given mask as opaque channel.</p> -  - <p>A pixel value of 255 makes the result become the color given, - 0 doesn't change anything.</p> -  - <p>The masks red, green and blue values are used separately. - If no color are given, the current is used. - </p> - </text> - <group> -  <param name='mask'/> - <text><p>mask image</p></text></group> - <group> -  <param name='r'/> -  <param name='g'/> -  <param name='b'/> - <text><p>what color to paint with; default is current</p></text></group> - <group> -  <param name='x'/> -  <param name='y'/> - <text><p>where to paste the image; default is 0,0 - </p></text></group> - <group><returns/><text> - <p>the object called</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.paste_mask'>paste_mask</ref>, <ref resolved='predef::Image.image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='paste_mask' homogen-type='method'> - <method name='paste_mask'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='image'><type><object resolved='predef::Image.image.paste_mask'/></type></argument> - <argument name='mask'><type><object resolved='predef::Image.image.paste_mask'/></type></argument> -  -  </arguments> - </method><method name='paste_mask'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='image'><type><object resolved='predef::Image.image.paste_mask'/></type></argument> - <argument name='mask'><type><object resolved='predef::Image.image.paste_mask'/></type></argument> - <argument name='x'><type><int/></type></argument> - <argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Pastes a given image over the current image, - using the given mask as opaque channel.</p> -  - <p>A pixel value of 255 makes the result become a pixel - from the given image, 0 doesn't change anything.</p> -  - <p>The masks red, green and blue values are used separately. - </p> - </text> - <group> -  <param name='image'/> - <text><p>image to paste</p></text></group> - <group> -  <param name='mask'/> - <text><p>mask image</p></text></group> - <group> -  <param name='x'/> -  <param name='y'/> - <text><p>where to paste the image; default is 0,0 - </p></text></group> - <group><returns/><text> - <p>the object called</p> - </text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.paste'>paste</ref>, <ref resolved='predef::Image.image.paste_alpha'>paste_alpha</ref>, <ref resolved='predef::Image.image.paste_alpha_color'>paste_alpha_color</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='phaseh'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='phasev'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='phasevh'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='phasehv'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>Draws images describing the phase - of the current image. phaseh gives the - horizontal phase and phasev the vertical - phase.</p> -  - <p><tt>phaseh</tt> gives an image - were - <pre> -  max falling min rising - value= 0 64 128 192 - </pre></p> -  - <p>0 is set if there is no way to determine - if it is rising or falling. This is done - for the every red, green and blue part of - the image.</p> -  - <p>Phase images can be used to create ugly - effects or to find meta-information - in the orginal image. - </p> - </text> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><note/><text> - <p>experimental status; may not be exact the same - output in later versions</p> - </text></group> - <group><bugs/><text> - <p>0 should not be set as explained above.</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='polyfill' homogen-type='method'> - <method name='polyfill'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='curve'><type><varargs> -  <array><valuetype> -  <or><int/><float/></or></valuetype></array></varargs></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>fills an area with the current color - </p> - </text> - <group> -  <param name='curve'/> - <text><p>curve(s), <tt>({x1,y1,x2,y2,...,xn,yn})</tt>, - automatically closed.</p> -  - <p>If any given curve is inside another, it - will make a hole. - </p></text></group> - <group><returns/><text> - <p>the current object</p> - </text></group> - <group><note/><text> - <p>Lines in the polygon may <i>not</i> be crossed without - the crossing coordinate specified in both lines. - </p> - </text></group> - <group><bugs/><text> - <p>Inverted lines reported on Intel and Alpha processors. - </p> - </text></group> - <group><seealso/><text> - <p><ref>setcolor</ref></p></text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='random' homogen-type='method'> - <method name='random'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><method name='random'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='seed'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Gives a randomized image;<br/> - <table><tr valign='center'> - <td><image file='predef.Image.image.random.1.png' height='115' width='80'>pattern.c1.png</image></td> - <td><image file='predef.Image.image.random.2.png' height='115' width='80'>pattern.c2.png</image></td> - <td><image file='predef.Image.image.random.3.png' height='115' width='80'>pattern.c3.png</image></td> - <td><image file='predef.Image.image.random.4.png' height='115' width='80'>pattern.c4.png</image></td> - <td><image file='predef.Image.image.random.5.png' height='115' width='80'>pattern.c5.png</image></td> - <td><image file='predef.Image.image.random.6.png' height='115' width='80'>pattern.c6.png</image></td> - </tr><tr> - <td>original</td> - <td>-&gt;random()</td> - <td>-&gt;random(17)</td> - <td>greyed<br/>(same again)</td> - <td>color(red)<br/>(same again)</td> - <td>...red channel<br/></td> - </tr></table></p> -  - <p>Use with -&gt;grey() or -&gt;color() for one-color-results. - </p> - </text> - <group><returns/><text> - <p>a new image</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='rotate'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='angle'><type> -  <or><int/><float/></or></type></argument> -  -  </arguments> - </method><method name='rotate'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='angle'><type> -  <or><int/><float/></or></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='rotate_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='angle'><type> -  <or><int/><float/></or></type></argument> -  -  </arguments> - </method><method name='rotate_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='angle'><type> -  <or><int/><float/></or></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Rotates an image a certain amount of degrees (360° is - a complete rotation) counter-clockwise:</p> -  - <p><table><tr valign='center'> - <td><image file='predef.Image.image.rotate.1.png' height='115' width='80'>matrix.c4.png</image></td> - <td><image file='predef.Image.image.rotate.2.png' height='141' width='113'>matrix.c5.png</image></td> - <td><image file='predef.Image.image.rotate.3.png' height='141' width='113'>matrix.c6.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;rotate(15,255,0,0);</td> - <td>-&gt;rotate_expand(15);</td> - </tr></table></p> -  - <p>The "expand" variant of functions stretches the - image border pixels rather then filling with - the given or current color.</p> -  - <p>This rotate uses the <ref resolved='predef::Image.image.skewx'>skewx</ref>() and <ref resolved='predef::Image.image.skewy'>skewy</ref>() functions.</p> - </text> - <group> -  <param name='angle'/> - <text><p>the number of degrees to rotate</p></text></group> - <group> -  <param name='r'/> -  <param name='g'/> -  <param name='b'/> - <text><p>color to fill with; default is current</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='rotate_ccw' homogen-type='method'> - <method name='rotate_ccw'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>rotates an image counter-clockwise, 90 degrees.</p> -  - <p><table><tr valign='center'> - <td><image file='predef.Image.image.rotate_ccw.1.png' height='115' width='80'>matrix.c7.png</image></td> - <td><image file='predef.Image.image.rotate_ccw.2.png' height='80' width='115'>matrix.c8.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;rotate_ccw();</td> - </tr></table> - </p> - </text> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='rotate_cw' homogen-type='method'> - <method name='rotate_cw'> -  <returntype> -  <object>object </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p>rotates an image clockwise, 90 degrees.</p> -  - <p><table><tr valign='center'> - <td><image file='predef.Image.image.rotate_cw.1.png' height='115' width='80'>matrix.c9.png</image></td> - <td><image file='predef.Image.image.rotate_cw.2.png' height='80' width='115'>matrix.c10.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;rotate_cw();</td> - </tr></table></p> - </text> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='scale' homogen-type='method'> - <method name='scale'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='factor'><type><float/></type></argument> -  -  </arguments> - </method><method name='scale'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument><value>0.5</value></argument> -  </arguments> - </method><method name='scale'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='xfactor'><type><float/></type></argument> - <argument name='yfactor'><type><float/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>scales the image with a factor, - 0.5 is an optimized case.</p> - </text> - <group> -  <param name='factor'/> - <text><p>factor to use for both x and y</p></text></group> - <group> -  <param name='xfactor'/> -  <param name='yfactor'/> - <text><p>separate factors for x and y - </p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='scale' homogen-type='method'> - <method name='scale'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='newxsize'><type><int/></type></argument> - <argument name='newysize'><type><int/></type></argument> -  -  </arguments> - </method><method name='scale'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument><value>0</value></argument><argument name='newysize'><type><int/></type></argument> -  -  </arguments> - </method><method name='scale'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='newxsize'><type><int/></type></argument> - <argument><value>0</value></argument> -  </arguments> - </method><doc> - <text> - <p>scales the image to a specified new size, - if one of newxsize or newysize is 0, - the image aspect ratio is preserved.</p> - </text> - <group> -  <param name='newxsize'/> -  <param name='newysize'/> - <text><p>new image size in pixels - </p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> - <group><note/><text> - <p>resulting image will be 1x1 pixels, at least</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='skewx'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='yfactor'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='yfactor'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='yfactor'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='x'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewx_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='yfactor'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Skews an image an amount of pixels or a factor; - a skew-x is a transformation:</p> -  - <p><table><tr valign='center'> - <td><image file='predef.Image.image.skewx.1.png' height='115' width='80'>matrix.c11.png</image></td> - <td><image file='predef.Image.image.skewx.2.png' height='115' width='95'>matrix.c12.png</image></td> - <td><image file='predef.Image.image.skewx.3.png' height='115' width='95'>matrix.c13.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;skewx(15,255,0,0);</td> - <td>-&gt;skewx_expand(15);</td> - </tr></table> - </p> - </text> - <group> -  <param name='x'/> - <text><p>the number of pixels -  The "expand" variant of functions stretches the -  image border pixels rather then filling with -  the given or current color.</p></text></group> - <group> -  <param name='yfactor'/> - <text><p>best described as: x=yfactor*this-&gt;ysize()</p></text></group> - <group> -  <param name='r'/> -  <param name='g'/> -  <param name='b'/> - <text><p>color to fill with; default is current</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-type='method'> - <method name='skewy'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='xfactor'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='y'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='xfactor'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='y'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='xfactor'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='y'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><method name='skewy_expand'> -  <returntype> -  <object>object </object></returntype> -  <arguments><argument name='xfactor'><type><int/></type></argument> - <argument name='r'><type><int/></type></argument> - <argument name='g'><type><int/></type></argument> - <argument name='b'><type><int/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>Skews an image an amount of pixels or a factor; - a skew-y is a transformation:</p> -  - <p><table><tr valign='center'> - <td><image file='predef.Image.image.skewy.1.png' height='115' width='80'>matrix.c14.png</image></td> - <td><image file='predef.Image.image.skewy.2.png' height='130' width='80'>matrix.c15.png</image></td> - <td><image file='predef.Image.image.skewy.3.png' height='130' width='80'>matrix.c16.png</image></td> - </tr><tr valign='center'> - <td>original</td> - <td>-&gt;skewy(15,255,0,0);</td> - <td>-&gt;skewy_expand(15);</td> - </tr></table></p> -  - <p>The "expand" variant of functions stretches the - image border pixels rather then filling with - the given or current color.</p> - </text> - <group> -  <param name='y'/> - <text><p>the number of pixels</p></text></group> - <group> -  <param name='xfactor'/> - <text><p>best described as: t=xfactor*this-&gt;xsize()</p></text></group> - <group> -  <param name='r'/> -  <param name='g'/> -  <param name='b'/> - <text><p>color to fill with; default is current</p></text></group> - <group><returns/><text> - <p>the new image object</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='toppm' homogen-type='method'> - <method name='toppm'> -  <returntype> -  <object>string </object></returntype> -  <arguments> -  </arguments> - </method><doc> - <text> - <p><b>compability method</b> - do not use in new programs.</p> -  - <p>See <ref resolved='predef::Image.PNM.encode'>Image.PNM.encode</ref>(). - </p> - </text> - <group><returns/><text> - <p>PPM data</p> - </text></group> -  - </doc> - </docgroup> - <docgroup homogen-name='turbulence' homogen-type='method'> - <method name='turbulence'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='colorrange'><type> -  <array><valuetype> -  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> -  -  </arguments> - </method><method name='turbulence'> -  <returntype> -  <object>void </object></returntype> -  <arguments><argument name='colorrange'><type> -  <array><valuetype> -  <or><float/><int/><array><valuetype><int/></valuetype></array></or></valuetype></array></type></argument> - <argument name='octaves'><type><int/></type></argument> - <argument name='scale'><type><float/></type></argument> - <argument name='xdiff'><type><float/></type></argument> - <argument name='ydiff'><type><float/></type></argument> - <argument name='cscale'><type><float/></type></argument> -  -  </arguments> - </method><doc> - <text> - <p>gives a new image with the old image's size, - filled width a 'turbulence' pattern</p> -  - <p>The random seed may be different with each instance of pike.</p> -  - <p>Example: <br/> - <tt>-&gt;turbulence( ({0,({229,204,204}), 0.9,({229,20,20}), 0.9,Image.color.black}) );</tt> - <br/></p> - </text> - <group> -  <param name='colorrange'/> - <text><p>colorrange table</p></text></group> - <group> -  <param name='octaves'/> - <text><p>default value is 3</p></text></group> - <group> -  <param name='scale'/> - <text><p>default value is 0.1</p></text></group> - <group> -  <param name='xdiff'/> -  <param name='ydiff'/> - <text><p>default value is 0,0</p></text></group> - <group> -  <param name='cscale'/> - <text><p>default value is 1</p></text></group> - <group><seealso/><text> - <p><ref resolved='predef::Image.image.noise'>noise</ref></p></text></group> -  - </doc> - </docgroup> - </class> - </module> +    <module name='Math'>   <class name='Matrix'>   <doc>