autodoc.git/
autodoc.xml
Branch:
Tag:
Non-build tags
All tags
No tags
1999-04-13
1999-04-13 11:14:34 by Mirar (Pontus Hagland) <pike@sort.mirar.org>
17550918b73f95071f8c6e14a7109e09f0887976 (
9185
lines) (+
4594
/-
4591
)
[
Show
|
Annotate
]
Branch:
8.0
Image.image -> Image.Image
Rev: src/modules/Image/image.c:1.127
2197:
<p/> </text> <group><seealso/><text>
-
<p><ref resolved='predef::Image'>Image</ref></p></text></group>
+
<p><ref resolved='predef::Image
.Image
'>Image</ref></p></text></group>
</doc> <docgroup homogen-type='method'>
2277:
<text> <p> This submodule keeps the BMP (Windows Bitmap)
-
encode/decode capabilities of the <ref resolved='predef::Image'>Image</ref> module.</p>
+
encode/decode capabilities of the <ref resolved='predef::Image
.Image
'>Image</ref> module.</p>
<p>BMP is common in the Windows environment.</p>
2286:
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>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'>
2385:
<text> <p> This submodule keep the GIF encode/decode capabilities
-
of the <ref resolved='predef::Image'>Image</ref> module.</p>
+
of the <ref resolved='predef::Image
.Image
'>Image</ref> module.</p>
<p>GIF is a common image storage format, usable for a limited color palette - a GIF image can
2403:
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>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'>
3265:
<text> <p> This submodule keep the ILBM encode/decode capabilities
-
of the <ref resolved='predef::Image'>Image</ref> module.
+
of the <ref resolved='predef::Image
.Image
'>Image</ref> module.
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>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'>
3405:
</doc> </docgroup> </module>
+
<class name='Image'>
+
<doc>
+
<text>
+
<p>
+
The main object of the <ref resolved='predef::Image.Image'>Image</ref> module, this object
+
is used as drawing area, mask or result of operations.</p>
+
+
<p>basic: <br/>
+
<ref resolved='predef::Image.Image.clear'>clear</ref>,
+
<ref resolved='predef::Image.Image.clone'>clone</ref>,
+
<ref resolved='predef::Image.Image.create'>create</ref>,
+
<ref resolved='predef::Image.Image.xsize'>xsize</ref>,
+
<ref resolved='predef::Image.Image.ysize'>ysize</ref></p>
+
+
<p>plain drawing: <br/>
+
<ref resolved='predef::Image.Image.box'>box</ref>,
+
<ref resolved='predef::Image.Image.circle'>circle</ref>,
+
<ref resolved='predef::Image.Image.getpixel'>getpixel</ref>,
+
<ref resolved='predef::Image.Image.line'>line</ref>,
+
<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>
+
+
<p>operators: <br/>
+
<ref>`&</ref>,
+
<ref>`*</ref>,
+
<ref>`+</ref>,
+
<ref>`-</ref>,
+
<ref>`==</ref>,
+
<ref>`></ref>,
+
<ref>`<</ref>,
+
<ref>`|</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>
+
+
<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>
+
+
<p>calculation by pixels: <br/>
+
<ref resolved='predef::Image.Image.apply_matrix'>apply_matrix</ref>,
+
<ref resolved='predef::Image.Image.change_color'>change_color</ref>,
+
<ref resolved='predef::Image.Image.color'>color</ref>,
+
<ref resolved='predef::Image.Image.distancesq'>distancesq</ref>,
+
<ref resolved='predef::Image.Image.grey'>grey</ref>,
+
<ref resolved='predef::Image.Image.invert'>invert</ref>,
+
<ref resolved='predef::Image.Image.modify_by_intensity'>modify_by_intensity</ref>,
+
<ref resolved='predef::Image.Image.outline'>outline</ref>
+
<ref resolved='predef::Image.Image.select_from'>select_from</ref>,
+
<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>special pattern drawing:<br/>
+
<ref>noise</ref>,
+
<ref>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 resolved='predef::Image.colortable'>Image.colortable</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group>
+
+
</doc>
+
<docgroup homogen-name='apply_matrix' homogen-type='method'>
+
<method name='apply_matrix'>
+
<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_matrix'>
+
<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_matrix'>
+
<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>Applies a pixel-transform matrix, or filter, to the image.</p>
+
+
<p><pre>
+
2 2
+
pixel(x,y)= base+ k ( sum sum pixel(x+k-1,y+l-1)*matrix(k,l) )
+
k=0 l=0
+
</pre></p>
+
+
<p>1/k is sum of matrix, or sum of matrix multiplied with div.
+
base is given by r,g,b and is normally black.</p>
+
+
<p><table><tr><td rowspan='2'>
+
blur (ie a 2d gauss function):
+
<pre>
+
({({1,2,1}),
+
({2,5,2}),
+
({1,2,1})})
+
</pre>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.1.png' height='115' width='80'>image.c0.png</image>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.2.png' height='115' width='80'>image.c1.png</image>
+
</td></tr>
+
<tr><td/><td>original</td></tr>
+
+
<tr><td>
+
sharpen (k>8, preferably 12 or 16):
+
<pre>
+
({({-1,-1,-1}),
+
({-1, k,-1}),
+
({-1,-1,-1})})
+
</pre>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.3.png' height='115' width='80'>image.c2.png</image>
+
</td></tr>
+
+
<tr><td>
+
edge detect:
+
<pre>
+
({({1, 1,1}),
+
({1,-8,1}),
+
({1, 1,1})})
+
</pre>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.4.png' height='115' width='80'>image.c3.png</image>
+
</td></tr>
+
+
<tr><td>
+
horisontal edge detect (get the idea):
+
<pre>
+
({({0, 0,0}),
+
({1,-2,1}),
+
({0, 0,0})})
+
</pre>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.5.png' height='115' width='80'>image.c4.png</image>
+
</td></tr>
+
+
<tr><td rowspan='2'>
+
emboss (might prefer to begin with a <ref resolved='predef::Image.Image.grey'>grey</ref> image):
+
<pre>
+
({({2, 1, 0}),
+
({1, 0,-1}),
+
({0,-1,-2})}), 128,128,128, 3
+
</pre>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.6.png' height='115' width='80'>image.c5.png</image>
+
</td><td>
+
<image file='predef.Image.Image.apply_matrix.7.png' height='115' width='80'>image.c6.png</image>
+
</td></tr>
+
<tr><td/><td>greyed</td></tr></table></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>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='autocrop'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='border'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='autocrop'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='border'><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='autocrop'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='border'><type><int/></type></argument>
+
<argument name='left'><type><int/></type></argument>
+
<argument name='right'><type><int/></type></argument>
+
<argument name='top'><type><int/></type></argument>
+
<argument name='bottom'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='autocrop'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='border'><type><int/></type></argument>
+
<argument name='left'><type><int/></type></argument>
+
<argument name='right'><type><int/></type></argument>
+
<argument name='top'><type><int/></type></argument>
+
<argument name='bottom'><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>Removes "unneccesary" borders around the image, adds one of
+
its own if wanted to, in selected directions.</p>
+
+
<p>"Unneccesary" is all pixels that are equal -- ie if all the same pixels
+
to the left are the same color, that column of pixels are removed.
+
</p>
+
</text>
+
<group>
+
<param name='border'/>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color of the new border</p></text></group>
+
<group>
+
<param name='left'/>
+
<param name='right'/>
+
<param name='top'/>
+
<param name='bottom'/>
+
<text><p>which borders to scan and cut the image;
+
a typical example is removing the top and bottom unneccesary
+
pixels:
+
<pre>img=img->autocrop(0, 0,0,1,1);</pre></p></text></group>
+
<group><returns/><text>
+
<p>the new image object</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.copy'>copy</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='box' homogen-type='method'>
+
<method name='box'>
+
<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>
+
+
</arguments>
+
</method><method name='box'>
+
<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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='box'>
+
<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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Draws a filled rectangle on the image.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.box.1.png' height='115' width='80'>image.c7.png</image></td>
+
<td><image file='predef.Image.Image.box.2.png' height='115' width='80'>image.c8.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->box<br/>(40,10,<br/>10,80,<br/>0,255,0)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='x1'/>
+
<param name='y1'/>
+
<param name='x2'/>
+
<param name='y2'/>
+
<text><p>box corners</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color of the box</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>alpha value</p></text></group>
+
<group><returns/><text>
+
<p>the object called</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='cast' homogen-type='method'>
+
<method name='cast'>
+
<returntype>
+
<object>string </object></returntype>
+
<arguments><argument name='type'><type><string/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<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>
+
</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>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='change_color' homogen-type='method'>
+
<method name='change_color'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='tor'><type><int/></type></argument>
+
<argument name='tog'><type><int/></type></argument>
+
<argument name='tob'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='change_color'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='fromr'><type><int/></type></argument>
+
<argument name='fromg'><type><int/></type></argument>
+
<argument name='fromb'><type><int/></type></argument>
+
<argument name='inttor'><type>
+
<object resolved='predef::Image.Image.change_color'/></type></argument>
+
<argument name='tog'><type><int/></type></argument>
+
<argument name='tob'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<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>
+
</text>
+
<group>
+
<param name='tor'/>
+
<param name='tog'/>
+
<param name='tob'/>
+
<text><p>destination color and next current color</p></text></group>
+
<group>
+
<param name='fromr'/>
+
<param name='fromg'/>
+
<param name='fromb'/>
+
<text><p>source color, default is current color</p></text></group>
+
<group><returns/><text>
+
<p>a new (the destination) image object</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='circle' homogen-type='method'>
+
<method name='circle'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
<argument name='rx'><type><int/></type></argument>
+
<argument name='ry'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='circle'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
<argument name='rx'><type><int/></type></argument>
+
<argument name='ry'><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='circle'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
<argument name='rx'><type><int/></type></argument>
+
<argument name='ry'><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>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Draws a circle on the image. The circle is <i>not</i> antialiased.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.circle.1.png' height='115' width='80'>image.c9.png</image></td>
+
<td><image file='predef.Image.Image.circle.2.png' height='115' width='80'>image.c10.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->circle<br/>(50,50,<br/>30,50,<br/>0,255,255)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='x'/>
+
<param name='y'/>
+
<text><p>circle center</p></text></group>
+
<group>
+
<param name='rx'/>
+
<param name='ry'/>
+
<text><p>circle radius in pixels</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>alpha value</p></text></group>
+
<group><returns/><text>
+
<p>the object called</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='clear' homogen-type='method'>
+
<method name='clear'>
+
<returntype>
+
<object>void </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='clear'>
+
<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><method name='clear'>
+
<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>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>gives a new, cleared image with the same size of drawing area</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.clear.1.png' height='115' width='80'>image.c11.png</image></td>
+
<td><image file='predef.Image.Image.clear.2.png' height='115' width='80'>image.c12.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->clear<br/>(0,128,255)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color of the new image</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>new default alpha channel value</p></text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.copy'>copy</ref>, <ref resolved='predef::Image.Image.clone'>clone</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='clone' homogen-type='method'>
+
<method name='clone'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='clone'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='xsize'><type><int/></type></argument>
+
<argument name='ysize'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='clone'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='xsize'><type><int/></type></argument>
+
<argument name='ysize'><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='clone'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='xsize'><type><int/></type></argument>
+
<argument name='ysize'><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>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Copies to or initialize a new image object.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.clone.1.png' height='115' width='80'>image.c13.png</image></td>
+
<td><image file='predef.Image.Image.clone.2.png' height='115' width='80'>image.c14.png</image></td>
+
<td><image file='predef.Image.Image.clone.3.png' height='50' width='50'>image.c15.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>clone</td>
+
<td>clone(50,50)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='xsize'/>
+
<param name='ysize'/>
+
<text><p>size of (new) image in pixels, called image
+
is cropped to that size</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>current color of the new image,
+
default is black.
+
Will also be the background color if the cloned image
+
is empty (no drawing area made).</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>new default alpha channel value</p></text></group>
+
<group><returns/><text>
+
<p>the new object</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.copy'>copy</ref>, <ref resolved='predef::Image.Image.create'>create</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='color' homogen-type='method'>
+
<method name='color'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='color'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='value'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='color'>
+
<returntype>
+
<object>object </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>Colorize an image.</p>
+
+
<p>The red, green and blue values of the pixels are multiplied
+
with the given value(s). This works best on a grey image...</p>
+
+
<p>The result is divided by 255, giving correct pixel values.</p>
+
+
<p>If no arguments are given, the current color is used as factors.</p>
+
+
<p> <table><tr valign='center'>
+
<td><image file='predef.Image.Image.color.1.png' height='115' width='80'>image.c16.png</image></td>
+
<td><image file='predef.Image.Image.color.2.png' height='115' width='80'>image.c17.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>->color(128,128,255);</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>red, green, blue factors</p></text></group>
+
<group>
+
<param name='value'/>
+
<text><p>factor
+
</p></text></group>
+
<group><returns/><text>
+
<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>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='copy' homogen-type='method'>
+
<method name='copy'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='copy'>
+
<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>
+
+
</arguments>
+
</method><method name='copy'>
+
<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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='copy'>
+
<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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Copies this part of the image. The requested area can
+
be smaller, giving a cropped image, or bigger -
+
the new area will be filled with the given or current color.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.copy.1.png' height='115' width='80'>image.c18.png</image></td>
+
<td><image file='predef.Image.Image.copy.2.png' height='105' width='70'>image.c19.png</image></td>
+
<td><image file='predef.Image.Image.copy.3.png' height='125' width='90'>image.c20.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->copy<br/>(5,5,<br/>XSIZE-6,YSIZE-6)</td>
+
<td>->copy<br/>(-5,-5,<br/>XSIZE+4,YSIZE+4,<br/>10,75,10)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='x1'/>
+
<param name='y1'/>
+
<param name='x2'/>
+
<param name='y2'/>
+
<text><p>The requested new area. Default is the old image size.</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color of the new image</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>new default alpha channel value</p></text></group>
+
<group><returns/><text>
+
<p>a new image object</p>
+
</text></group>
+
<group><note/><text>
+
<p><ref resolved='predef::Image.Image.clone'>clone</ref>(void) and <ref resolved='predef::Image.Image.copy'>copy</ref>(void) does the same
+
operation
+
</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.clone'>clone</ref>, <ref resolved='predef::Image.Image.autocrop'>autocrop</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='create' homogen-type='method'>
+
<method name='create'>
+
<returntype>
+
<object>void </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='create'>
+
<returntype>
+
<object>void </object></returntype>
+
<arguments><argument name='xsize'><type><int/></type></argument>
+
<argument name='ysize'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='create'>
+
<returntype>
+
<object>void </object></returntype>
+
<arguments><argument name='xsize'><type><int/></type></argument>
+
<argument name='ysize'><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='create'>
+
<returntype>
+
<object>void </object></returntype>
+
<arguments><argument name='xsize'><type><int/></type></argument>
+
<argument name='ysize'><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>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Initializes a new image object.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.create.1.png' height='115' width='80'>image.c21.png</image></td>
+
<td><image file='predef.Image.Image.create.2.png' height='115' width='80'>image.c22.png</image></td>
+
</tr><tr>
+
<td>Image.Image<br/>(XSIZE,YSIZE)</td>
+
<td>Image.Image<br/>(XSIZE,YSIZE,255,128,0)</td>
+
</tr></table></p>
+
</text>
+
<group>
+
<param name='xsize'/>
+
<param name='ysize'/>
+
<text><p>size of (new) image in pixels</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>background color (will also be current color),
+
default color is black</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>default alpha channel value</p></text></group>
+
<group><bugs/><text>
+
<p>SIGSEGVS can be caused if the size is too big, due
+
to unchecked overflow -
+
(xsize*ysize)&MAXINT is small enough to allocate.</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.copy'>copy</ref>, <ref resolved='predef::Image.Image.clone'>clone</ref>, <ref resolved='predef::Image.Image'>Image.Image</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='distancesq' homogen-type='method'>
+
<method name='distancesq'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='distancesq'>
+
<returntype>
+
<object>object </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>Makes an grey-scale image, for alpha-channel use.</p>
+
+
<p>The given value (or current color) are used for coordinates
+
in the color cube. Each resulting pixel is the
+
distance from this point to the source pixel color,
+
in the color cube, squared, rightshifted 8 steps:</p>
+
+
<p><pre>
+
p = pixel color
+
o = given color
+
d = destination pixel
+
d.red=d.blue=d.green=
+
((o.red-p.red)²+(o.green-p.green)²+(o.blue-p.blue)²)>>8
+
</pre></p>
+
+
<p> <table><tr valign='center'>
+
<td><image file='predef.Image.Image.distancesq.1.png' height='115' width='80'>image.c23.png</image></td>
+
<td><image file='predef.Image.Image.distancesq.2.png' height='115' width='80'>image.c24.png</image></td>
+
<td><image file='predef.Image.Image.distancesq.3.png' height='115' width='80'>image.c25.png</image></td>
+
<td><image file='predef.Image.Image.distancesq.4.png' height='115' width='80'>image.c26.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>distance² to cyan</td>
+
<td>...to purple</td>
+
<td>...to yellow</td>
+
</tr></table></p>
+
+
<p/>
+
</text>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>red, green, blue coordinates
+
</p></text></group>
+
<group><returns/><text>
+
<p>the new image object</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.select_from'>select_from</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='gamma' homogen-type='method'>
+
<method name='gamma'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='g'><type><float/></type></argument>
+
+
</arguments>
+
</method><method name='gamma'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='gred'><type><float/></type></argument>
+
<argument><value>ggreen</value></argument><argument><value>gblue</value></argument>
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Calculate pixels in image by gamma curve.</p>
+
+
<p>Intensity of new pixels are calculated by:<br/>
+
<i>i</i>' = <i>i</i>^<i>g</i></p>
+
+
<p>For example, you are viewing your image on a screen
+
with gamma 2.2. To correct your image to the correct
+
gamma value, do something like:</p>
+
+
<p><tt>my_display_image(my_image()->gamma(1/2.2);</tt>
+
</p>
+
</text>
+
<group>
+
<param name='g'/>
+
<param name='gred'/>
+
<param name='ggreen'/>
+
<param name='gblue'/>
+
<text><p>gamma value
+
</p></text></group>
+
<group><returns/><text>
+
<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>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='getpixel' homogen-type='method'>
+
<method name='getpixel'>
+
<returntype>
+
<array><valuetype><int/></valuetype></array></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p/>
+
</text>
+
<group>
+
<param name='x'/>
+
<param name='y'/>
+
<text><p>position of the pixel</p></text></group>
+
<group><returns/><text>
+
<p>color of the requested pixel -- ({int red,int green,int blue})</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='gradients' homogen-type='method'>
+
<method name='gradients'>
+
<returntype>
+
<object>int </object></returntype>
+
<arguments><argument name='point'><type>
+
<array><valuetype><int/></valuetype></array></type></argument>
+
<argument name='...'><type>
+
<object resolved='predef::Image.Image.gradients'/></type></argument>
+
+
</arguments>
+
</method><method name='gradients'>
+
<returntype>
+
<object>int </object></returntype>
+
<arguments><argument name='point'><type>
+
<array><valuetype><int/></valuetype></array></type></argument>
+
<argument name='...'><type>
+
<object resolved='predef::Image.Image.gradients'/></type></argument>
+
<argument name='floatgrad'><type>
+
<object resolved='predef::Image.Image.gradients'/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.gradients.1.png' height='115' width='80'>image.c27.png</image></td>
+
<td><image file='predef.Image.Image.gradients.2.png' height='115' width='80'>image.c28.png</image></td>
+
<td><image file='predef.Image.Image.gradients.3.png' height='115' width='80'>image.c29.png</image></td>
+
<td><image file='predef.Image.Image.gradients.4.png' height='115' width='80'>image.c30.png</image></td>
+
<td><image file='predef.Image.Image.gradients.5.png' height='115' width='80'>image.c31.png</image></td>
+
<td><image file='predef.Image.Image.gradients.6.png' height='115' width='80'>image.c32.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>2 color<br/>gradient</td>
+
<td>10 color<br/>gradient</td>
+
<td>3 colors,<br/>grad=4.0</td>
+
<td>3 colors,<br/>grad=1.0</td>
+
<td>3 colors,<br/>grad=0.25</td>
+
</tr></table>
+
</p>
+
</text>
+
<group><returns/><text>
+
<p>the new image</p>
+
</text></group>
+
+
</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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Makes a grey-scale image (with weighted values).</p>
+
+
<p> <table><tr valign='center'>
+
<td><image file='predef.Image.Image.grey.1.png' height='115' width='80'>image.c33.png</image></td>
+
<td><image file='predef.Image.Image.grey.2.png' height='115' width='80'>image.c34.png</image></td>
+
<td><image file='predef.Image.Image.grey.3.png' height='115' width='80'>image.c35.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>->grey();</td>
+
<td>->grey(0,0,255);</td>
+
</tr></table>
+
</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,
+
which should be pretty accurate of what the eyes see...
+
</p></text></group>
+
<group><returns/><text>
+
<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>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-type='method'>
+
<method name='rgb_to_hsv'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='hsv_to_rgb'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Converts RGB data to HSV data, or the other way around.
+
When converting to HSV, the resulting data is stored like this:
+
pixel.r = h; pixel.g = s; pixel.b = v;</p>
+
+
<p>When converting to RGB, the input data is asumed to be placed in
+
the pixels as above.</p>
+
+
<p> <table><tr valign='center'>
+
<td><image file='predef.Image.Image.rgb_to_hsv.1.png' height='115' width='80'>image.c36.png</image></td>
+
<td><image file='predef.Image.Image.rgb_to_hsv.2.png' height='115' width='80'>image.c37.png</image></td>
+
<td><image file='predef.Image.Image.rgb_to_hsv.3.png' height='115' width='80'>image.c38.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>->hsv_to_rgb();</td>
+
<td>->rgb_to_hsv();</td>
+
</tr><tr valign='center'>
+
<td/>
+
<td/>
+
<td/>
+
</tr><tr valign='center'>
+
<td>tuned box (below)</td>
+
<td>the rainbow (below)</td>
+
<td>same, but rgb_to_hsv()</td>
+
</tr></table></p>
+
+
<p>
+
HSV to RGB calculation:
+
<pre>
+
in = input pixel
+
out = destination pixel
+
h=-pos*c_angle*3.1415/(float)NUM_SQUARES;
+
out.r=(in.b+in.g*cos(in.r));
+
out.g=(in.b+in.g*cos(in.r + pi*2/3));
+
out.b=(in.b+in.g*cos(in.r + pi*4/3));
+
</pre></p>
+
+
<p>RGB to HSV calculation: Hmm.
+
<pre>
+
</pre></p>
+
+
<p> Example: Nice rainbow.
+
<pre>
+
object i = Image.Image(200,200);
+
i = i->tuned_box(0,0, 200,200,
+
({ ({ 255,255,128 }), ({ 0,255,128 }),
+
({ 255,255,255 }), ({ 0,255,255 })}))
+
->hsv_to_rgb();
+
</pre></p>
+
</text>
+
<group><returns/><text>
+
<p>the new image object</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='invert' homogen-type='method'>
+
<method name='invert'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Invert an image. Each pixel value gets to be 255-x, where x
+
is the old value.</p>
+
+
<p> <table><tr valign='center'>
+
<td><image file='predef.Image.Image.invert.1.png' height='115' width='80'>image.c42.png</image></td>
+
<td><image file='predef.Image.Image.invert.2.png' height='115' width='80'>image.c43.png</image></td>
+
<td><image file='predef.Image.Image.invert.3.png' height='115' width='80'>image.c44.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>->invert();</td>
+
<td>->rgb_to_hsv()->invert()->hsv_to_rgb();</td>
+
</tr></table>
+
</p>
+
</text>
+
<group><returns/><text>
+
<p>the new image object</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='line' homogen-type='method'>
+
<method name='line'>
+
<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>
+
+
</arguments>
+
</method><method name='line'>
+
<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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='line'>
+
<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='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Draws a line on the image. The line is <i>not</i> antialiased.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.line.1.png' height='115' width='80'>image.c45.png</image></td>
+
<td><image file='predef.Image.Image.line.2.png' height='115' width='80'>image.c46.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->line<br/>(50,10,<br/>10,50,<br/>255,0,0)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='x1'/>
+
<param name='y1'/>
+
<param name='x2'/>
+
<param name='y2'/>
+
<text><p>line endpoints</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>alpha value</p></text></group>
+
<group><returns/><text>
+
<p>the object called</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-type='method'>
+
<method name='map_closest'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='colors'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
+
</arguments>
+
</method><method name='map_fast'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='colors'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
+
</arguments>
+
</method><method name='map_fs'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='colors'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
+
</arguments>
+
</method><method name='select_colors'>
+
<returntype>
+
<object>array </object></returntype>
+
<arguments><argument name='num'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Compatibility functions. Do not use!</p>
+
+
<p>Replacement examples:</p>
+
+
<p>Old code:
+
<pre>img=map_fs(img->select_colors(200));</pre>
+
New code:
+
<pre>img=Image.colortable(img,200)->floyd_steinberg()->map(img);</pre></p>
+
+
<p>Old code:
+
<pre>img=map_closest(img->select_colors(17)+({({255,255,255}),({0,0,0})}));</pre>
+
New code:
+
<pre>img=Image.colortable(img,19,({({255,255,255}),({0,0,0})}))->map(img);</pre></p>
+
</text>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='modify_by_intensity' homogen-type='method'>
+
<method name='modify_by_intensity'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
<argument name='v1'><type>
+
<or><int/><array><valuetype><int/></valuetype></array></or></type></argument>
+
<argument><value>...</value></argument><argument name='vn'><type>
+
<or><int/><array><valuetype><int/></valuetype></array></or></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Recolor an image from intensity values.</p>
+
+
<p>For each color an intensity is calculated, from r, g and b factors
+
(see <ref resolved='predef::Image.Image.grey'>grey</ref>), this gives a value between 0 and max.</p>
+
+
<p>The color is then calculated from the values given, v1 representing
+
the intensity value of 0, vn representing max, and colors between
+
representing intensity values between, linear.</p>
+
+
<p> <table><tr valign='center'>
+
<td><image file='predef.Image.Image.modify_by_intensity.1.png' height='115' width='80'>image.c47.png</image></td>
+
<td><image file='predef.Image.Image.modify_by_intensity.2.png' height='115' width='80'>image.c48.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>->grey()->modify_by_intensity(1,0,0, 0,({255,0,0}),({0,255,0}));</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>red, green, blue intensity factors</p></text></group>
+
<group>
+
<param name='v1'/>
+
<param name='vn'/>
+
<text><p>destination color
+
</p></text></group>
+
<group><returns/><text>
+
<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>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-type='method'>
+
<method name='outline'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='outline'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='olr'><type><int/></type></argument>
+
<argument name='olg'><type><int/></type></argument>
+
<argument name='olb'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='outline'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='olr'><type><int/></type></argument>
+
<argument name='olg'><type><int/></type></argument>
+
<argument name='olb'><type><int/></type></argument>
+
<argument name='bkgr'><type><int/></type></argument>
+
<argument name='bkgg'><type><int/></type></argument>
+
<argument name='bkgb'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='outline'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='mask'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
+
</arguments>
+
</method><method name='outline'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='mask'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
<argument name='olr'><type><int/></type></argument>
+
<argument name='olg'><type><int/></type></argument>
+
<argument name='olb'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='outline'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='mask'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
<argument name='olr'><type><int/></type></argument>
+
<argument name='olg'><type><int/></type></argument>
+
<argument name='olb'><type><int/></type></argument>
+
<argument name='bkgr'><type><int/></type></argument>
+
<argument name='bkgg'><type><int/></type></argument>
+
<argument name='bkgb'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='outline_mask'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='outline_mask'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='bkgr'><type><int/></type></argument>
+
<argument name='bkgg'><type><int/></type></argument>
+
<argument name='bkgb'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='outline_mask'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='mask'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
+
</arguments>
+
</method><method name='outline_mask'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='mask'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
<argument name='bkgr'><type><int/></type></argument>
+
<argument name='bkgg'><type><int/></type></argument>
+
<argument name='bkgb'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Makes an outline of this image, ie paints with the
+
given color around the non-background pixels.</p>
+
+
<p>Default is to paint above, below, to the left and the right of
+
these pixels.</p>
+
+
<p>You can also run your own outline mask.</p>
+
+
<p>The outline_mask function gives the calculated outline as an
+
alpha channel image of white and black instead.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.outline.1.png' height='115' width='80'>image.c49.png</image></td>
+
<td><image file='predef.Image.Image.outline.2.png' height='115' width='80'>image.c50.png</image></td>
+
<td><image file='predef.Image.Image.outline.3.png' height='115' width='80'>image.c51.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>masked<br/>through<br/>threshold</td>
+
<td>...and<br/>outlined<br/>with red</td>
+
</tr></table></p>
+
+
<p/>
+
</text>
+
<group>
+
<param name='mask'/>
+
<text><p>mask matrix. Default is <tt>({({0,1,0}),({1,1,1}),({0,1,0})})</tt>.</p></text></group>
+
<group>
+
<param name='olr'/>
+
<param name='olg'/>
+
<param name='olb'/>
+
<text><p>outline color. Default is current.</p></text></group>
+
<group>
+
<param name='bkgr'/>
+
<param name='bkgg'/>
+
<param name='bkgb'/>
+
<text><p>background color (what color to outline to);
+
default is color of pixel 0,0.</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>
+
<group><note/><text>
+
<p>no antialias!</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-type='method'>
+
<method name='write_lsb_rgb'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='what'><type><string/></type></argument>
+
+
</arguments>
+
</method><method name='write_lsb_grey'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='what'><type><string/></type></argument>
+
+
</arguments>
+
</method><method name='read_lsb_rgb'>
+
<returntype>
+
<object>string </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='read_lsb_grey'>
+
<returntype>
+
<object>string </object></returntype>
+
<arguments>
+
</arguments>
+
</method><doc>
+
<text>
+
<p>These functions read/write in the least significant bit
+
of the image pixel values. The _rgb() functions
+
read/write on each of the red, green and blue values,
+
and the grey keeps the same lsb on all three.</p>
+
+
<p>The string is nullpadded or cut to fit.
+
</p>
+
</text>
+
<group>
+
<param name='what'/>
+
<text><p>the hidden message</p></text></group>
+
<group><returns/><text>
+
<p>the current object or the read string</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='select_from' homogen-type='method'>
+
<method name='select_from'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='select_from'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
<argument name='edge_value'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Makes an grey-scale image, for alpha-channel use.</p>
+
+
<p>This is very close to a floodfill.</p>
+
+
<p>The image is scanned from the given pixel,
+
filled with 255 if the color is the same,
+
or 255 minus distance in the colorcube, squared, rightshifted
+
8 steps (see <ref resolved='predef::Image.Image.distancesq'>distancesq</ref>).</p>
+
+
<p>When the edge distance is reached, the scan is stopped.
+
Default edge value is 30.
+
This value is squared and compared with the square of the
+
distance above.
+
</p>
+
</text>
+
<group>
+
<param name='x'/>
+
<param name='y'/>
+
<text><p>originating pixel in the image
+
</p></text></group>
+
<group><returns/><text>
+
<p>the new image object</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.distancesq'>distancesq</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='setcolor' homogen-type='method'>
+
<method name='setcolor'>
+
<returntype>
+
<object>object </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><method name='setcolor'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='r'><type><int/></type></argument>
+
<argument name='g'><type><int/></type></argument>
+
<argument name='b'><type><int/></type></argument>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>set the current color
+
</p>
+
</text>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>new color</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>new alpha value</p></text></group>
+
<group><returns/><text>
+
<p>the object called</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='setpixel' homogen-type='method'>
+
<method name='setpixel'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<argument name='y'><type><int/></type></argument>
+
+
</arguments>
+
</method><method name='setpixel'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<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='setpixel'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='x'><type><int/></type></argument>
+
<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>
+
<argument name='alpha'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>
+
<table><tr valign='center'>
+
<td><image file='predef.Image.Image.setpixel.1.png' height='115' width='80'>image.c52.png</image></td>
+
<td><image file='predef.Image.Image.setpixel.2.png' height='115' width='80'>image.c53.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->setpixel<br/>(10,10,<br/>255,0,0)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='x'/>
+
<param name='y'/>
+
<text><p>position of the pixel</p></text></group>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>color</p></text></group>
+
<group>
+
<param name='alpha'/>
+
<text><p>alpha value</p></text></group>
+
<group><returns/><text>
+
<p>the object called</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='test' homogen-type='method'>
+
<method name='test'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='test'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments><argument name='seed'><type><int/></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Generates a test image, currently random gradients.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.test.1.png' height='115' width='80'>image.c54.png</image></td>
+
<td><image file='predef.Image.Image.test.2.png' height='115' width='80'>image.c55.png</image></td>
+
<td><image file='predef.Image.Image.test.3.png' height='115' width='80'>image.c56.png</image></td>
+
</tr><tr>
+
<td>original</td>
+
<td>->test()</td>
+
<td>...and again</td>
+
</tr></table>
+
</p>
+
</text>
+
<group><returns/><text>
+
<p>the new image</p>
+
</text></group>
+
<group><note/><text>
+
<p>May be subject to change or cease without prior warning.</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='threshold' homogen-type='method'>
+
<method name='threshold'>
+
<returntype>
+
<object>object </object></returntype>
+
<arguments>
+
</arguments>
+
</method><method name='threshold'>
+
<returntype>
+
<object>object </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>Makes a black-white image.</p>
+
+
<p>If all red, green, blue parts of a pixel
+
is larger or equal then the given value, the pixel will become
+
white, else black.</p>
+
+
<p>This method works fine with the grey method.</p>
+
+
<p>If no arguments are given, the current color is used
+
for threshold values.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.threshold.1.png' height='115' width='80'>image.c57.png</image></td>
+
<td><image file='predef.Image.Image.threshold.2.png' height='115' width='80'>image.c58.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>->threshold(90,100,110);</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='r'/>
+
<param name='g'/>
+
<param name='b'/>
+
<text><p>red, green, blue threshold values
+
</p></text></group>
+
<group><returns/><text>
+
<p>the new image object</p>
+
</text></group>
+
<group><seealso/><text>
+
<p><ref resolved='predef::Image.Image.grey'>grey</ref></p></text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='tuned_box' homogen-type='method'>
+
<method name='tuned_box'>
+
<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='corner_color'><type>
+
<array><valuetype>
+
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
+
+
</arguments>
+
</method><doc>
+
<text>
+
<p>Draws a filled rectangle with colors (and alpha values) tuned
+
between the corners.</p>
+
+
<p>Tuning function is (1.0-x/xw)*(1.0-y/yw) where x and y is
+
the distance to the corner and xw and yw are the sides of the
+
rectangle.</p>
+
+
<p><table><tr valign='center'>
+
<td><image file='predef.Image.Image.tuned_box.1.png' height='115' width='80'>image.c59.png</image></td>
+
<td><image file='predef.Image.Image.tuned_box.2.png' height='115' width='80'>image.c60.png</image></td>
+
<td><image file='predef.Image.Image.tuned_box.3.png' height='115' width='80'>image.c61.png</image></td>
+
<td><image file='predef.Image.Image.tuned_box.4.png' height='115' width='80'>image.c62.png</image></td>
+
</tr><tr valign='center'>
+
<td>original</td>
+
<td>tuned box</td>
+
<td>solid tuning<br/>(blue,red,green,yellow)</td>
+
<td>tuning transparency<br/>(as left + 255,128,128,0)</td>
+
</tr></table>
+
</p>
+
</text>
+
<group>
+
<param name='x1'/>
+
<param name='y1'/>
+
<param name='x2'/>
+
<param name='y2'/>
+
<text><p>rectangle corners</p></text></group>
+
<group>
+
<param name='corner_color'/>
+
<text><p>colors of the corners:
+
<pre>
+
({x1y1,x2y1,x1y2,x2y2})
+
</pre>
+
each of these is an array of integeres:
+
<pre>
+
({r,g,b}) or ({r,g,b,alpha})
+
</pre>
+
Default alpha channel value is 0 (opaque).</p></text></group>
+
<group><returns/><text>
+
<p>the object called</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='xsize' homogen-type='method'>
+
<method name='xsize'>
+
<returntype>
+
<object>int </object></returntype>
+
<arguments>
+
</arguments>
+
</method><doc>
+
<group><returns/><text>
+
<p>the width of the image</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
<docgroup homogen-name='ysize' homogen-type='method'>
+
<method name='ysize'>
+
<returntype>
+
<object>int </object></returntype>
+
<arguments>
+
</arguments>
+
</method><doc>
+
<group><returns/><text>
+
<p>the height of the image</p>
+
</text></group>
+
+
</doc>
+
</docgroup>
+
</class>
<module name='JPEG'> <doc> <text>
3927:
<text> <p> This submodule keeps the PNM encode/decode capabilities
-
of the <ref resolved='predef::Image'>Image</ref> module.</p>
+
of the <ref resolved='predef::Image
.Image
'>Image</ref> module.</p>
<p>PNM is a common image storage format on unix systems, and is a very simple format.</p>
3962:
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::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'>
4055:
<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
resolved='predef::Image.image.threshold'
>Image.image->threshold</ref>() or something like
+
<ref>Image.image->threshold</ref>() or something like
<tt><ref resolved='predef::Image.colortable'>Image.colortable</ref>( ({({0,0,0}),({255,255,255})}) )<br/>->floyd_steinberg()<br/>->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
resolved='predef::Image.image.grey'
>Image.image->grey</ref>() to get a greyscale image.</p>
+
<ref>Image.image->grey</ref>() to get a greyscale image.</p>
<p/> </text>
4453:
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref>, <ref resolved='predef::Image.colortable'>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'>
5169:
<text> <p> This submodule keeps the XWD (X Windows Dump)
-
decode capabilities of the <ref resolved='predef::Image'>Image</ref> module.</p>
+
decode capabilities of the <ref resolved='predef::Image
.Image
'>Image</ref> module.</p>
<p>XWD is the output format for the xwd program.</p>
5181:
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::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'>
5246:
<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:
+
<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"
5320:
<p/> </text></group> <group><seealso/><text>
-
<p><ref resolved='predef::Image.color.color.name'>Image.color.color->name</ref>, <ref resolved='predef::Image.color.color.rgb'>Image.color.color->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</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group>
+
<p><ref resolved='predef::Image.color.color.name'>Image.color.color->name</ref>, <ref resolved='predef::Image.color.color.rgb'>Image.color.color->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'>
5341:
<tt>values</tt> gives there corresponding objects.</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::Image.color'>Image.color</ref></p></text></group>
+
<p><ref resolved='predef::Image.
Image.
color'>Image.color</ref></p></text></group>
</doc> </docgroup>
5412:
</method><doc> <text> <p>This is equivalent to
-
<tt><ref resolved='predef::Image.color'>Image.color</ref>(lower_case(str)-" ")</tt>,
+
<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>
5557:
<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-><ref resolved='predef::Image.color.color.light'>light</ref>()-><ref resolved='predef::Image.color.color.dark'>dark</ref>()
+
<ref resolved='predef::Image.
Image.
color'>Image.color</ref>.white-><ref resolved='predef::Image.color.color.light'>light</ref>()-><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-><ref resolved='predef::Image.color.color.dark'>dark</ref>(), since
+
<ref resolved='predef::Image.
Image.
color'>Image.color</ref>.white-><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>
5729:
<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>
+
<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>
5747:
</p> </text> <group><seealso/><text>
-
<p><ref resolved='predef::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'>
6079:
</method><doc> <text> <p>cast the colortable to an array or mapping,
-
the array consists of <ref resolved='predef::Image.color'>Image.color</ref> objects
+
the array consists of <ref resolved='predef::Image.
Image.
color'>Image.color</ref> objects
and are not in index order. The mapping consists of
-
index:<ref resolved='predef::Image.color'>Image.color</ref> pairs, where index is
+
index:<ref resolved='predef::Image.
Image.
color'>Image.color</ref> pairs, where index is
the index (int) of that color.</p> <p>example: <tt>(mapping)Image.colortable(img)</tt>
6624:
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
resolved='predef::Image.image.grey'
>Image.image->grey</ref>().
+
darker than green. Compare with <ref>Image.image->grey</ref>().
</p> </text> <group><returns/><text>
6649:
<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</ref> module.</p>
+
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>
6726:
</p> </text></group> <group><seealso/><text>
-
<p><ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.image'>Image.image</ref></p></text></group>
+
<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'>
6861:
</docgroup> </class> <class name='image'>
-
<doc>
-
<text>
-
<p>
-
The main object of the <ref resolved='predef::Image'>Image</ref> module, this object
-
is used as drawing area, mask or result of operations.</p>
-
-
<p>basic: <br/>
-
<ref resolved='predef::Image.image.clear'>clear</ref>,
-
<ref resolved='predef::Image.image.clone'>clone</ref>,
-
<ref resolved='predef::Image.image.create'>create</ref>,
-
<ref resolved='predef::Image.image.xsize'>xsize</ref>,
-
<ref resolved='predef::Image.image.ysize'>ysize</ref></p>
-
-
<p>plain drawing: <br/>
-
<ref resolved='predef::Image.image.box'>box</ref>,
-
<ref resolved='predef::Image.image.circle'>circle</ref>,
-
<ref resolved='predef::Image.image.getpixel'>getpixel</ref>,
-
<ref resolved='predef::Image.image.line'>line</ref>,
-
<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 resolved='predef::Image.image.polyfill'>polyfill</ref></p>
-
-
<p>operators: <br/>
-
<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.`=='>`==</ref>,
-
<ref resolved='predef::Image.image.`>'>`></ref>,
-
<ref resolved='predef::Image.image.`<'>`<</ref>,
-
<ref resolved='predef::Image.image.`|'>`|</ref></p>
-
-
<p>pasting images, layers: <br/>
-
<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 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>,
-
<ref resolved='predef::Image.image.change_color'>change_color</ref>,
-
<ref resolved='predef::Image.image.color'>color</ref>,
-
<ref resolved='predef::Image.image.distancesq'>distancesq</ref>,
-
<ref resolved='predef::Image.image.grey'>grey</ref>,
-
<ref resolved='predef::Image.image.invert'>invert</ref>,
-
<ref resolved='predef::Image.image.modify_by_intensity'>modify_by_intensity</ref>,
-
<ref resolved='predef::Image.image.outline'>outline</ref>
-
<ref resolved='predef::Image.image.select_from'>select_from</ref>,
-
<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 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 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</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>
7527:
</doc> </docgroup>
-
<docgroup homogen-name='apply_matrix' homogen-type='method'>
-
<method name='apply_matrix'>
-
<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_matrix'>
-
<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_matrix'>
-
<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>Applies a pixel-transform matrix, or filter, to the image.</p>
-
-
<p><pre>
-
2 2
-
pixel(x,y)= base+ k ( sum sum pixel(x+k-1,y+l-1)*matrix(k,l) )
-
k=0 l=0
-
</pre></p>
-
-
<p>1/k is sum of matrix, or sum of matrix multiplied with div.
-
base is given by r,g,b and is normally black.</p>
-
-
<p><table><tr><td rowspan='2'>
-
blur (ie a 2d gauss function):
-
<pre>
-
({({1,2,1}),
-
({2,5,2}),
-
({1,2,1})})
-
</pre>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.1.png' height='115' width='80'>image.c0.png</image>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.2.png' height='115' width='80'>image.c1.png</image>
-
</td></tr>
-
<tr><td/><td>original</td></tr>
-
-
<tr><td>
-
sharpen (k>8, preferably 12 or 16):
-
<pre>
-
({({-1,-1,-1}),
-
({-1, k,-1}),
-
({-1,-1,-1})})
-
</pre>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.3.png' height='115' width='80'>image.c2.png</image>
-
</td></tr>
-
-
<tr><td>
-
edge detect:
-
<pre>
-
({({1, 1,1}),
-
({1,-8,1}),
-
({1, 1,1})})
-
</pre>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.4.png' height='115' width='80'>image.c3.png</image>
-
</td></tr>
-
-
<tr><td>
-
horisontal edge detect (get the idea):
-
<pre>
-
({({0, 0,0}),
-
({1,-2,1}),
-
({0, 0,0})})
-
</pre>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.5.png' height='115' width='80'>image.c4.png</image>
-
</td></tr>
-
-
<tr><td rowspan='2'>
-
emboss (might prefer to begin with a <ref resolved='predef::Image.image.grey'>grey</ref> image):
-
<pre>
-
({({2, 1, 0}),
-
({1, 0,-1}),
-
({0,-1,-2})}), 128,128,128, 3
-
</pre>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.6.png' height='115' width='80'>image.c5.png</image>
-
</td><td>
-
<image file='predef.Image.image.apply_matrix.7.png' height='115' width='80'>image.c6.png</image>
-
</td></tr>
-
<tr><td/><td>greyed</td></tr></table></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='apply_max' homogen-type='method'> <method name='apply_max'> <returntype>
7720:
</doc> </docgroup>
-
<docgroup homogen-name='autocrop' homogen-type='method'>
-
<method name='autocrop'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='autocrop'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='border'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='autocrop'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='border'><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='autocrop'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='border'><type><int/></type></argument>
-
<argument name='left'><type><int/></type></argument>
-
<argument name='right'><type><int/></type></argument>
-
<argument name='top'><type><int/></type></argument>
-
<argument name='bottom'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='autocrop'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='border'><type><int/></type></argument>
-
<argument name='left'><type><int/></type></argument>
-
<argument name='right'><type><int/></type></argument>
-
<argument name='top'><type><int/></type></argument>
-
<argument name='bottom'><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>Removes "unneccesary" borders around the image, adds one of
-
its own if wanted to, in selected directions.</p>
-
-
<p>"Unneccesary" is all pixels that are equal -- ie if all the same pixels
-
to the left are the same color, that column of pixels are removed.
-
</p>
-
</text>
-
<group>
-
<param name='border'/>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color of the new border</p></text></group>
-
<group>
-
<param name='left'/>
-
<param name='right'/>
-
<param name='top'/>
-
<param name='bottom'/>
-
<text><p>which borders to scan and cut the image;
-
a typical example is removing the top and bottom unneccesary
-
pixels:
-
<pre>img=img->autocrop(0, 0,0,1,1);</pre></p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.copy'>copy</ref></p></text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-type='method'> <method name='average'> <returntype>
7842:
</doc> </docgroup>
-
<docgroup homogen-name='box' homogen-type='method'>
-
<method name='box'>
-
<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>
-
-
</arguments>
-
</method><method name='box'>
-
<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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='box'>
-
<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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Draws a filled rectangle on the image.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.box.1.png' height='115' width='80'>image.c7.png</image></td>
-
<td><image file='predef.Image.image.box.2.png' height='115' width='80'>image.c8.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->box<br/>(40,10,<br/>10,80,<br/>0,255,0)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='x1'/>
-
<param name='y1'/>
-
<param name='x2'/>
-
<param name='y2'/>
-
<text><p>box corners</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color of the box</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>alpha value</p></text></group>
-
<group><returns/><text>
-
<p>the object called</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='cast' homogen-type='method'>
-
<method name='cast'>
-
<returntype>
-
<object>string </object></returntype>
-
<arguments><argument name='type'><type><string/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Cast the image to another datatype. Currently supported
-
are string ("rgbrgbrgb...") and array (double array
-
of <ref resolved='predef::Image.color'>Image.color</ref> objects).</p>
-
</text>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.color'>Image.color</ref>, <ref resolved='predef::Image.X'>Image.X</ref></p></text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='change_color' homogen-type='method'>
-
<method name='change_color'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='tor'><type><int/></type></argument>
-
<argument name='tog'><type><int/></type></argument>
-
<argument name='tob'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='change_color'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='fromr'><type><int/></type></argument>
-
<argument name='fromg'><type><int/></type></argument>
-
<argument name='fromb'><type><int/></type></argument>
-
<argument name='inttor'><type>
-
<object resolved='predef::Image.image.change_color'/></type></argument>
-
<argument name='tog'><type><int/></type></argument>
-
<argument name='tob'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<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 resolved='predef::Image.image.paste_alpha_color'>paste_alpha_color</ref>.</p>
-
</text>
-
<group>
-
<param name='tor'/>
-
<param name='tog'/>
-
<param name='tob'/>
-
<text><p>destination color and next current color</p></text></group>
-
<group>
-
<param name='fromr'/>
-
<param name='fromg'/>
-
<param name='fromb'/>
-
<text><p>source color, default is current color</p></text></group>
-
<group><returns/><text>
-
<p>a new (the destination) image object</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='circle' homogen-type='method'>
-
<method name='circle'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
<argument name='rx'><type><int/></type></argument>
-
<argument name='ry'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='circle'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
<argument name='rx'><type><int/></type></argument>
-
<argument name='ry'><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='circle'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
<argument name='rx'><type><int/></type></argument>
-
<argument name='ry'><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>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Draws a circle on the image. The circle is <i>not</i> antialiased.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.circle.1.png' height='115' width='80'>image.c9.png</image></td>
-
<td><image file='predef.Image.image.circle.2.png' height='115' width='80'>image.c10.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->circle<br/>(50,50,<br/>30,50,<br/>0,255,255)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='x'/>
-
<param name='y'/>
-
<text><p>circle center</p></text></group>
-
<group>
-
<param name='rx'/>
-
<param name='ry'/>
-
<text><p>circle radius in pixels</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>alpha value</p></text></group>
-
<group><returns/><text>
-
<p>the object called</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='clear' homogen-type='method'>
-
<method name='clear'>
-
<returntype>
-
<object>void </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='clear'>
-
<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><method name='clear'>
-
<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>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>gives a new, cleared image with the same size of drawing area</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.clear.1.png' height='115' width='80'>image.c11.png</image></td>
-
<td><image file='predef.Image.image.clear.2.png' height='115' width='80'>image.c12.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->clear<br/>(0,128,255)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color of the new image</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>new default alpha channel value</p></text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.copy'>copy</ref>, <ref resolved='predef::Image.image.clone'>clone</ref></p></text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='clone' homogen-type='method'>
-
<method name='clone'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='clone'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='xsize'><type><int/></type></argument>
-
<argument name='ysize'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='clone'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='xsize'><type><int/></type></argument>
-
<argument name='ysize'><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='clone'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='xsize'><type><int/></type></argument>
-
<argument name='ysize'><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>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Copies to or initialize a new image object.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.clone.1.png' height='115' width='80'>image.c13.png</image></td>
-
<td><image file='predef.Image.image.clone.2.png' height='115' width='80'>image.c14.png</image></td>
-
<td><image file='predef.Image.image.clone.3.png' height='50' width='50'>image.c15.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>clone</td>
-
<td>clone(50,50)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='xsize'/>
-
<param name='ysize'/>
-
<text><p>size of (new) image in pixels, called image
-
is cropped to that size</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>current color of the new image,
-
default is black.
-
Will also be the background color if the cloned image
-
is empty (no drawing area made).</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>new default alpha channel value</p></text></group>
-
<group><returns/><text>
-
<p>the new object</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.copy'>copy</ref>, <ref resolved='predef::Image.image.create'>create</ref></p></text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='color' homogen-type='method'>
-
<method name='color'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='color'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='value'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='color'>
-
<returntype>
-
<object>object </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>Colorize an image.</p>
-
-
<p>The red, green and blue values of the pixels are multiplied
-
with the given value(s). This works best on a grey image...</p>
-
-
<p>The result is divided by 255, giving correct pixel values.</p>
-
-
<p>If no arguments are given, the current color is used as factors.</p>
-
-
<p> <table><tr valign='center'>
-
<td><image file='predef.Image.image.color.1.png' height='115' width='80'>image.c16.png</image></td>
-
<td><image file='predef.Image.image.color.2.png' height='115' width='80'>image.c17.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>->color(128,128,255);</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>red, green, blue factors</p></text></group>
-
<group>
-
<param name='value'/>
-
<text><p>factor
-
</p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<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>
-
<docgroup homogen-name='copy' homogen-type='method'>
-
<method name='copy'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='copy'>
-
<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>
-
-
</arguments>
-
</method><method name='copy'>
-
<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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='copy'>
-
<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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Copies this part of the image. The requested area can
-
be smaller, giving a cropped image, or bigger -
-
the new area will be filled with the given or current color.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.copy.1.png' height='115' width='80'>image.c18.png</image></td>
-
<td><image file='predef.Image.image.copy.2.png' height='105' width='70'>image.c19.png</image></td>
-
<td><image file='predef.Image.image.copy.3.png' height='125' width='90'>image.c20.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->copy<br/>(5,5,<br/>XSIZE-6,YSIZE-6)</td>
-
<td>->copy<br/>(-5,-5,<br/>XSIZE+4,YSIZE+4,<br/>10,75,10)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='x1'/>
-
<param name='y1'/>
-
<param name='x2'/>
-
<param name='y2'/>
-
<text><p>The requested new area. Default is the old image size.</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color of the new image</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>new default alpha channel value</p></text></group>
-
<group><returns/><text>
-
<p>a new image object</p>
-
</text></group>
-
<group><note/><text>
-
<p><ref resolved='predef::Image.image.clone'>clone</ref>(void) and <ref resolved='predef::Image.image.copy'>copy</ref>(void) does the same
-
operation
-
</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.clone'>clone</ref>, <ref resolved='predef::Image.image.autocrop'>autocrop</ref></p></text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='create' homogen-type='method'>
-
<method name='create'>
-
<returntype>
-
<object>void </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='create'>
-
<returntype>
-
<object>void </object></returntype>
-
<arguments><argument name='xsize'><type><int/></type></argument>
-
<argument name='ysize'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='create'>
-
<returntype>
-
<object>void </object></returntype>
-
<arguments><argument name='xsize'><type><int/></type></argument>
-
<argument name='ysize'><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='create'>
-
<returntype>
-
<object>void </object></returntype>
-
<arguments><argument name='xsize'><type><int/></type></argument>
-
<argument name='ysize'><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>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Initializes a new image object.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.create.1.png' height='115' width='80'>image.c21.png</image></td>
-
<td><image file='predef.Image.image.create.2.png' height='115' width='80'>image.c22.png</image></td>
-
</tr><tr>
-
<td>Image.image<br/>(XSIZE,YSIZE)</td>
-
<td>Image.image<br/>(XSIZE,YSIZE,255,128,0)</td>
-
</tr></table></p>
-
</text>
-
<group>
-
<param name='xsize'/>
-
<param name='ysize'/>
-
<text><p>size of (new) image in pixels</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>background color (will also be current color),
-
default color is black</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>default alpha channel value</p></text></group>
-
<group><bugs/><text>
-
<p>SIGSEGVS can be caused if the size is too big, due
-
to unchecked overflow -
-
(xsize*ysize)&MAXINT is small enough to allocate.</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.copy'>copy</ref>, <ref resolved='predef::Image.image.clone'>clone</ref>, <ref resolved='predef::Image.image'>Image.image</ref></p></text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-name='dct' homogen-type='method'> <method name='dct'> <returntype>
8415:
</doc> </docgroup>
-
<docgroup homogen-name='distancesq' homogen-type='method'>
-
<method name='distancesq'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='distancesq'>
-
<returntype>
-
<object>object </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>Makes an grey-scale image, for alpha-channel use.</p>
-
-
<p>The given value (or current color) are used for coordinates
-
in the color cube. Each resulting pixel is the
-
distance from this point to the source pixel color,
-
in the color cube, squared, rightshifted 8 steps:</p>
-
-
<p><pre>
-
p = pixel color
-
o = given color
-
d = destination pixel
-
d.red=d.blue=d.green=
-
((o.red-p.red)²+(o.green-p.green)²+(o.blue-p.blue)²)>>8
-
</pre></p>
-
-
<p> <table><tr valign='center'>
-
<td><image file='predef.Image.image.distancesq.1.png' height='115' width='80'>image.c23.png</image></td>
-
<td><image file='predef.Image.image.distancesq.2.png' height='115' width='80'>image.c24.png</image></td>
-
<td><image file='predef.Image.image.distancesq.3.png' height='115' width='80'>image.c25.png</image></td>
-
<td><image file='predef.Image.image.distancesq.4.png' height='115' width='80'>image.c26.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>distance² to cyan</td>
-
<td>...to purple</td>
-
<td>...to yellow</td>
-
</tr></table></p>
-
-
<p/>
-
</text>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>red, green, blue coordinates
-
</p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.select_from'>select_from</ref></p></text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-type='method'> <method name='find_min'> <returntype>
8512:
<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>
+
as the <ref>grey</ref>() method.</p></text></group>
</doc> </docgroup>
8545:
</doc> </docgroup>
-
<docgroup homogen-name='gamma' homogen-type='method'>
-
<method name='gamma'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='g'><type><float/></type></argument>
-
-
</arguments>
-
</method><method name='gamma'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='gred'><type><float/></type></argument>
-
<argument><value>ggreen</value></argument><argument><value>gblue</value></argument>
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Calculate pixels in image by gamma curve.</p>
-
-
<p>Intensity of new pixels are calculated by:<br/>
-
<i>i</i>' = <i>i</i>^<i>g</i></p>
-
-
<p>For example, you are viewing your image on a screen
-
with gamma 2.2. To correct your image to the correct
-
gamma value, do something like:</p>
-
-
<p><tt>my_display_image(my_image()->gamma(1/2.2);</tt>
-
</p>
-
</text>
-
<group>
-
<param name='g'/>
-
<param name='gred'/>
-
<param name='ggreen'/>
-
<param name='gblue'/>
-
<text><p>gamma value
-
</p></text></group>
-
<group><returns/><text>
-
<p>a new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<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='getpixel' homogen-type='method'>
-
<method name='getpixel'>
-
<returntype>
-
<array><valuetype><int/></valuetype></array></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p/>
-
</text>
-
<group>
-
<param name='x'/>
-
<param name='y'/>
-
<text><p>position of the pixel</p></text></group>
-
<group><returns/><text>
-
<p>color of the requested pixel -- ({int red,int green,int blue})</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='gradients' homogen-type='method'>
-
<method name='gradients'>
-
<returntype>
-
<object>int </object></returntype>
-
<arguments><argument name='point'><type>
-
<array><valuetype><int/></valuetype></array></type></argument>
-
<argument name='...'><type>
-
<object resolved='predef::Image.image.gradients'/></type></argument>
-
-
</arguments>
-
</method><method name='gradients'>
-
<returntype>
-
<object>int </object></returntype>
-
<arguments><argument name='point'><type>
-
<array><valuetype><int/></valuetype></array></type></argument>
-
<argument name='...'><type>
-
<object resolved='predef::Image.image.gradients'/></type></argument>
-
<argument name='floatgrad'><type>
-
<object resolved='predef::Image.image.gradients'/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.gradients.1.png' height='115' width='80'>image.c27.png</image></td>
-
<td><image file='predef.Image.image.gradients.2.png' height='115' width='80'>image.c28.png</image></td>
-
<td><image file='predef.Image.image.gradients.3.png' height='115' width='80'>image.c29.png</image></td>
-
<td><image file='predef.Image.image.gradients.4.png' height='115' width='80'>image.c30.png</image></td>
-
<td><image file='predef.Image.image.gradients.5.png' height='115' width='80'>image.c31.png</image></td>
-
<td><image file='predef.Image.image.gradients.6.png' height='115' width='80'>image.c32.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>2 color<br/>gradient</td>
-
<td>10 color<br/>gradient</td>
-
<td>3 colors,<br/>grad=4.0</td>
-
<td>3 colors,<br/>grad=1.0</td>
-
<td>3 colors,<br/>grad=0.25</td>
-
</tr></table>
-
</p>
-
</text>
-
<group><returns/><text>
-
<p>the new image</p>
-
</text></group>
-
-
</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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Makes a grey-scale image (with weighted values).</p>
-
-
<p> <table><tr valign='center'>
-
<td><image file='predef.Image.image.grey.1.png' height='115' width='80'>image.c33.png</image></td>
-
<td><image file='predef.Image.image.grey.2.png' height='115' width='80'>image.c34.png</image></td>
-
<td><image file='predef.Image.image.grey.3.png' height='115' width='80'>image.c35.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>->grey();</td>
-
<td>->grey(0,0,255);</td>
-
</tr></table>
-
</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,
-
which should be pretty accurate of what the eyes see...
-
</p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<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>
-
<docgroup homogen-type='method'>
-
<method name='rgb_to_hsv'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='hsv_to_rgb'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Converts RGB data to HSV data, or the other way around.
-
When converting to HSV, the resulting data is stored like this:
-
pixel.r = h; pixel.g = s; pixel.b = v;</p>
-
-
<p>When converting to RGB, the input data is asumed to be placed in
-
the pixels as above.</p>
-
-
<p> <table><tr valign='center'>
-
<td><image file='predef.Image.image.rgb_to_hsv.1.png' height='115' width='80'>image.c36.png</image></td>
-
<td><image file='predef.Image.image.rgb_to_hsv.2.png' height='115' width='80'>image.c37.png</image></td>
-
<td><image file='predef.Image.image.rgb_to_hsv.3.png' height='115' width='80'>image.c38.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>->hsv_to_rgb();</td>
-
<td>->rgb_to_hsv();</td>
-
</tr><tr valign='center'>
-
<td/>
-
<td/>
-
<td/>
-
</tr><tr valign='center'>
-
<td>tuned box (below)</td>
-
<td>the rainbow (below)</td>
-
<td>same, but rgb_to_hsv()</td>
-
</tr></table></p>
-
-
<p>
-
HSV to RGB calculation:
-
<pre>
-
in = input pixel
-
out = destination pixel
-
h=-pos*c_angle*3.1415/(float)NUM_SQUARES;
-
out.r=(in.b+in.g*cos(in.r));
-
out.g=(in.b+in.g*cos(in.r + pi*2/3));
-
out.b=(in.b+in.g*cos(in.r + pi*4/3));
-
</pre></p>
-
-
<p>RGB to HSV calculation: Hmm.
-
<pre>
-
</pre></p>
-
-
<p> Example: Nice rainbow.
-
<pre>
-
object i = Image.image(200,200);
-
i = i->tuned_box(0,0, 200,200,
-
({ ({ 255,255,128 }), ({ 0,255,128 }),
-
({ 255,255,255 }), ({ 0,255,255 })}))
-
->hsv_to_rgb();
-
</pre></p>
-
</text>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='invert' homogen-type='method'>
-
<method name='invert'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Invert an image. Each pixel value gets to be 255-x, where x
-
is the old value.</p>
-
-
<p> <table><tr valign='center'>
-
<td><image file='predef.Image.image.invert.1.png' height='115' width='80'>image.c42.png</image></td>
-
<td><image file='predef.Image.image.invert.2.png' height='115' width='80'>image.c43.png</image></td>
-
<td><image file='predef.Image.image.invert.3.png' height='115' width='80'>image.c44.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>->invert();</td>
-
<td>->rgb_to_hsv()->invert()->hsv_to_rgb();</td>
-
</tr></table>
-
</p>
-
</text>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='line' homogen-type='method'>
-
<method name='line'>
-
<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>
-
-
</arguments>
-
</method><method name='line'>
-
<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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='line'>
-
<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='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Draws a line on the image. The line is <i>not</i> antialiased.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.line.1.png' height='115' width='80'>image.c45.png</image></td>
-
<td><image file='predef.Image.image.line.2.png' height='115' width='80'>image.c46.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->line<br/>(50,10,<br/>10,50,<br/>255,0,0)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='x1'/>
-
<param name='y1'/>
-
<param name='x2'/>
-
<param name='y2'/>
-
<text><p>line endpoints</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>alpha value</p></text></group>
-
<group><returns/><text>
-
<p>the object called</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-name='make_ascii' homogen-type='method'> <method name='make_ascii'> <returntype>
8907:
</doc> </docgroup>
-
<docgroup homogen-type='method'>
-
<method name='map_closest'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='colors'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
-
</arguments>
-
</method><method name='map_fast'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='colors'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
-
</arguments>
-
</method><method name='map_fs'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='colors'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
-
</arguments>
-
</method><method name='select_colors'>
-
<returntype>
-
<object>array </object></returntype>
-
<arguments><argument name='num'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Compatibility functions. Do not use!</p>
-
-
<p>Replacement examples:</p>
-
-
<p>Old code:
-
<pre>img=map_fs(img->select_colors(200));</pre>
-
New code:
-
<pre>img=Image.colortable(img,200)->floyd_steinberg()->map(img);</pre></p>
-
-
<p>Old code:
-
<pre>img=map_closest(img->select_colors(17)+({({255,255,255}),({0,0,0})}));</pre>
-
New code:
-
<pre>img=Image.colortable(img,19,({({255,255,255}),({0,0,0})}))->map(img);</pre></p>
-
</text>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-name='match' homogen-type='method'> <method name='match'> <returntype>
9110:
</doc> </docgroup>
-
<docgroup homogen-name='modify_by_intensity' homogen-type='method'>
-
<method name='modify_by_intensity'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
<argument name='v1'><type>
-
<or><int/><array><valuetype><int/></valuetype></array></or></type></argument>
-
<argument><value>...</value></argument><argument name='vn'><type>
-
<or><int/><array><valuetype><int/></valuetype></array></or></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Recolor an image from intensity values.</p>
-
-
<p>For each color an intensity is calculated, from r, g and b factors
-
(see <ref resolved='predef::Image.image.grey'>grey</ref>), this gives a value between 0 and max.</p>
-
-
<p>The color is then calculated from the values given, v1 representing
-
the intensity value of 0, vn representing max, and colors between
-
representing intensity values between, linear.</p>
-
-
<p> <table><tr valign='center'>
-
<td><image file='predef.Image.image.modify_by_intensity.1.png' height='115' width='80'>image.c47.png</image></td>
-
<td><image file='predef.Image.image.modify_by_intensity.2.png' height='115' width='80'>image.c48.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>->grey()->modify_by_intensity(1,0,0, 0,({255,0,0}),({0,255,0}));</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>red, green, blue intensity factors</p></text></group>
-
<group>
-
<param name='v1'/>
-
<param name='vn'/>
-
<text><p>destination color
-
</p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<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>
9229:
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
+
(run a <ref>hsv_to_rgb</ref> pass on it
to get a viewable image). corresponding to the angle of the orientation:
9258:
</doc> </docgroup>
-
<docgroup homogen-type='method'>
-
<method name='outline'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='outline'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='olr'><type><int/></type></argument>
-
<argument name='olg'><type><int/></type></argument>
-
<argument name='olb'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='outline'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='olr'><type><int/></type></argument>
-
<argument name='olg'><type><int/></type></argument>
-
<argument name='olb'><type><int/></type></argument>
-
<argument name='bkgr'><type><int/></type></argument>
-
<argument name='bkgg'><type><int/></type></argument>
-
<argument name='bkgb'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='outline'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='mask'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
-
</arguments>
-
</method><method name='outline'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='mask'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
<argument name='olr'><type><int/></type></argument>
-
<argument name='olg'><type><int/></type></argument>
-
<argument name='olb'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='outline'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='mask'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
<argument name='olr'><type><int/></type></argument>
-
<argument name='olg'><type><int/></type></argument>
-
<argument name='olb'><type><int/></type></argument>
-
<argument name='bkgr'><type><int/></type></argument>
-
<argument name='bkgg'><type><int/></type></argument>
-
<argument name='bkgb'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='outline_mask'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='outline_mask'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='bkgr'><type><int/></type></argument>
-
<argument name='bkgg'><type><int/></type></argument>
-
<argument name='bkgb'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='outline_mask'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='mask'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
-
</arguments>
-
</method><method name='outline_mask'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='mask'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
<argument name='bkgr'><type><int/></type></argument>
-
<argument name='bkgg'><type><int/></type></argument>
-
<argument name='bkgb'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Makes an outline of this image, ie paints with the
-
given color around the non-background pixels.</p>
-
-
<p>Default is to paint above, below, to the left and the right of
-
these pixels.</p>
-
-
<p>You can also run your own outline mask.</p>
-
-
<p>The outline_mask function gives the calculated outline as an
-
alpha channel image of white and black instead.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.outline.1.png' height='115' width='80'>image.c49.png</image></td>
-
<td><image file='predef.Image.image.outline.2.png' height='115' width='80'>image.c50.png</image></td>
-
<td><image file='predef.Image.image.outline.3.png' height='115' width='80'>image.c51.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>masked<br/>through<br/>threshold</td>
-
<td>...and<br/>outlined<br/>with red</td>
-
</tr></table></p>
-
-
<p/>
-
</text>
-
<group>
-
<param name='mask'/>
-
<text><p>mask matrix. Default is <tt>({({0,1,0}),({1,1,1}),({0,1,0})})</tt>.</p></text></group>
-
<group>
-
<param name='olr'/>
-
<param name='olg'/>
-
<param name='olb'/>
-
<text><p>outline color. Default is current.</p></text></group>
-
<group>
-
<param name='bkgr'/>
-
<param name='bkgg'/>
-
<param name='bkgb'/>
-
<text><p>background color (what color to outline to);
-
default is color of pixel 0,0.</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>
-
<group><note/><text>
-
<p>no antialias!</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-name='paste' homogen-type='method'> <method name='paste'> <returntype>
9690:
</p> </text></group> <group><seealso/><text>
-
<p><ref
resolved='predef::Image.image.setcolor'
>setcolor</ref></p></text></group>
+
<p><ref>setcolor</ref></p></text></group>
</doc> </docgroup>
9735:
</doc> </docgroup> <docgroup homogen-type='method'>
-
<method name='write_lsb_rgb'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='what'><type><string/></type></argument>
-
-
</arguments>
-
</method><method name='write_lsb_grey'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='what'><type><string/></type></argument>
-
-
</arguments>
-
</method><method name='read_lsb_rgb'>
-
<returntype>
-
<object>string </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='read_lsb_grey'>
-
<returntype>
-
<object>string </object></returntype>
-
<arguments>
-
</arguments>
-
</method><doc>
-
<text>
-
<p>These functions read/write in the least significant bit
-
of the image pixel values. The _rgb() functions
-
read/write on each of the red, green and blue values,
-
and the grey keeps the same lsb on all three.</p>
-
-
<p>The string is nullpadded or cut to fit.
-
</p>
-
</text>
-
<group>
-
<param name='what'/>
-
<text><p>the hidden message</p></text></group>
-
<group><returns/><text>
-
<p>the current object or the read string</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-type='method'>
+
<method name='rotate'> <returntype> <object>object </object></returntype>
9973:
</doc> </docgroup>
-
<docgroup homogen-name='select_from' homogen-type='method'>
-
<method name='select_from'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='select_from'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
<argument name='edge_value'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Makes an grey-scale image, for alpha-channel use.</p>
-
-
<p>This is very close to a floodfill.</p>
-
-
<p>The image is scanned from the given pixel,
-
filled with 255 if the color is the same,
-
or 255 minus distance in the colorcube, squared, rightshifted
-
8 steps (see <ref resolved='predef::Image.image.distancesq'>distancesq</ref>).</p>
-
-
<p>When the edge distance is reached, the scan is stopped.
-
Default edge value is 30.
-
This value is squared and compared with the square of the
-
distance above.
-
</p>
-
</text>
-
<group>
-
<param name='x'/>
-
<param name='y'/>
-
<text><p>originating pixel in the image
-
</p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.distancesq'>distancesq</ref></p></text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='setcolor' homogen-type='method'>
-
<method name='setcolor'>
-
<returntype>
-
<object>object </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><method name='setcolor'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='r'><type><int/></type></argument>
-
<argument name='g'><type><int/></type></argument>
-
<argument name='b'><type><int/></type></argument>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>set the current color
-
</p>
-
</text>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>new color</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>new alpha value</p></text></group>
-
<group><returns/><text>
-
<p>the object called</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='setpixel' homogen-type='method'>
-
<method name='setpixel'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<argument name='y'><type><int/></type></argument>
-
-
</arguments>
-
</method><method name='setpixel'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<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='setpixel'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='x'><type><int/></type></argument>
-
<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>
-
<argument name='alpha'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>
-
<table><tr valign='center'>
-
<td><image file='predef.Image.image.setpixel.1.png' height='115' width='80'>image.c52.png</image></td>
-
<td><image file='predef.Image.image.setpixel.2.png' height='115' width='80'>image.c53.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->setpixel<br/>(10,10,<br/>255,0,0)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='x'/>
-
<param name='y'/>
-
<text><p>position of the pixel</p></text></group>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>color</p></text></group>
-
<group>
-
<param name='alpha'/>
-
<text><p>alpha value</p></text></group>
-
<group><returns/><text>
-
<p>the object called</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-type='method'> <method name='skewx'> <returntype>
10309:
</doc> </docgroup>
-
<docgroup homogen-name='test' homogen-type='method'>
-
<method name='test'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='test'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments><argument name='seed'><type><int/></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Generates a test image, currently random gradients.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.test.1.png' height='115' width='80'>image.c54.png</image></td>
-
<td><image file='predef.Image.image.test.2.png' height='115' width='80'>image.c55.png</image></td>
-
<td><image file='predef.Image.image.test.3.png' height='115' width='80'>image.c56.png</image></td>
-
</tr><tr>
-
<td>original</td>
-
<td>->test()</td>
-
<td>...and again</td>
-
</tr></table>
-
</p>
-
</text>
-
<group><returns/><text>
-
<p>the new image</p>
-
</text></group>
-
<group><note/><text>
-
<p>May be subject to change or cease without prior warning.</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='threshold' homogen-type='method'>
-
<method name='threshold'>
-
<returntype>
-
<object>object </object></returntype>
-
<arguments>
-
</arguments>
-
</method><method name='threshold'>
-
<returntype>
-
<object>object </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>Makes a black-white image.</p>
-
-
<p>If all red, green, blue parts of a pixel
-
is larger or equal then the given value, the pixel will become
-
white, else black.</p>
-
-
<p>This method works fine with the grey method.</p>
-
-
<p>If no arguments are given, the current color is used
-
for threshold values.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.threshold.1.png' height='115' width='80'>image.c57.png</image></td>
-
<td><image file='predef.Image.image.threshold.2.png' height='115' width='80'>image.c58.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>->threshold(90,100,110);</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='r'/>
-
<param name='g'/>
-
<param name='b'/>
-
<text><p>red, green, blue threshold values
-
</p></text></group>
-
<group><returns/><text>
-
<p>the new image object</p>
-
</text></group>
-
<group><seealso/><text>
-
<p><ref resolved='predef::Image.image.grey'>grey</ref></p></text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-name='toppm' homogen-type='method'> <method name='toppm'> <returntype>
10414:
</doc> </docgroup>
-
<docgroup homogen-name='tuned_box' homogen-type='method'>
-
<method name='tuned_box'>
-
<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='corner_color'><type>
-
<array><valuetype>
-
<array><valuetype><int/></valuetype></array></valuetype></array></type></argument>
-
-
</arguments>
-
</method><doc>
-
<text>
-
<p>Draws a filled rectangle with colors (and alpha values) tuned
-
between the corners.</p>
-
-
<p>Tuning function is (1.0-x/xw)*(1.0-y/yw) where x and y is
-
the distance to the corner and xw and yw are the sides of the
-
rectangle.</p>
-
-
<p><table><tr valign='center'>
-
<td><image file='predef.Image.image.tuned_box.1.png' height='115' width='80'>image.c59.png</image></td>
-
<td><image file='predef.Image.image.tuned_box.2.png' height='115' width='80'>image.c60.png</image></td>
-
<td><image file='predef.Image.image.tuned_box.3.png' height='115' width='80'>image.c61.png</image></td>
-
<td><image file='predef.Image.image.tuned_box.4.png' height='115' width='80'>image.c62.png</image></td>
-
</tr><tr valign='center'>
-
<td>original</td>
-
<td>tuned box</td>
-
<td>solid tuning<br/>(blue,red,green,yellow)</td>
-
<td>tuning transparency<br/>(as left + 255,128,128,0)</td>
-
</tr></table>
-
</p>
-
</text>
-
<group>
-
<param name='x1'/>
-
<param name='y1'/>
-
<param name='x2'/>
-
<param name='y2'/>
-
<text><p>rectangle corners</p></text></group>
-
<group>
-
<param name='corner_color'/>
-
<text><p>colors of the corners:
-
<pre>
-
({x1y1,x2y1,x1y2,x2y2})
-
</pre>
-
each of these is an array of integeres:
-
<pre>
-
({r,g,b}) or ({r,g,b,alpha})
-
</pre>
-
Default alpha channel value is 0 (opaque).</p></text></group>
-
<group><returns/><text>
-
<p>the object called</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
+
<docgroup homogen-name='turbulence' homogen-type='method'> <method name='turbulence'> <returntype>
10526:
</doc> </docgroup>
-
<docgroup homogen-name='xsize' homogen-type='method'>
-
<method name='xsize'>
-
<returntype>
-
<object>int </object></returntype>
-
<arguments>
-
</arguments>
-
</method><doc>
-
<group><returns/><text>
-
<p>the width of the image</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
-
<docgroup homogen-name='ysize' homogen-type='method'>
-
<method name='ysize'>
-
<returntype>
-
<object>int </object></returntype>
-
<arguments>
-
</arguments>
-
</method><doc>
-
<group><returns/><text>
-
<p>the height of the image</p>
-
</text></group>
-
-
</doc>
-
</docgroup>
+
</class> </module> <module name='Math'>