Branch: Tag:

1999-04-13

1999-04-13 11:14:34 by Mirar (Pontus Hagland) <pike@sort.mirar.org>

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>`&amp;</ref>, + <ref>`*</ref>, + <ref>`+</ref>, + <ref>`-</ref>, + <ref>`==</ref>, + <ref>`&gt;</ref>, + <ref>`&lt;</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&gt;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-&gt;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>-&gt;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>-&gt;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>-&gt;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>-&gt;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>-&gt;copy<br/>(5,5,<br/>XSIZE-6,YSIZE-6)</td> + <td>-&gt;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)&amp;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)²)&gt;&gt;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()-&gt;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>-&gt;grey();</td> +  <td>-&gt;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>-&gt;hsv_to_rgb();</td> +  <td>-&gt;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-&gt;tuned_box(0,0, 200,200, +  ({ ({ 255,255,128 }), ({ 0,255,128 }), +  ({ 255,255,255 }), ({ 0,255,255 })})) +  -&gt;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>-&gt;invert();</td> +  <td>-&gt;rgb_to_hsv()-&gt;invert()-&gt;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>-&gt;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-&gt;select_colors(200));</pre> + New code: + <pre>img=Image.colortable(img,200)-&gt;floyd_steinberg()-&gt;map(img);</pre></p> +  + <p>Old code: + <pre>img=map_closest(img-&gt;select_colors(17)+({({255,255,255}),({0,0,0})}));</pre> + New code: + <pre>img=Image.colortable(img,19,({({255,255,255}),({0,0,0})}))-&gt;map(img);</pre></p> + </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>-&gt;grey()-&gt;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>-&gt;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>-&gt;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>-&gt;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-&gt;threshold</ref>() or something like + <ref>Image.image-&gt;threshold</ref>() or something like   <tt><ref resolved='predef::Image.colortable'>Image.colortable</ref>( ({({0,0,0}),({255,255,255})}) )<br/>-&gt;floyd_steinberg()<br/>-&gt;map(my_image)</tt>   to get a black and white image.</p>      <p><ref resolved='predef::Image.PNM.encode_P2'>encode_P2</ref>/<ref resolved='predef::Image.PNM.encode_P5'>encode_P5</ref> assumes the image is greyscale. Use - <ref resolved='predef::Image.image.grey'>Image.image-&gt;grey</ref>() to get a greyscale image.</p> + <ref>Image.image-&gt;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-&gt;name</ref>, <ref resolved='predef::Image.color.color.rgb'>Image.color.color-&gt;rgb</ref>, <ref resolved='predef::Image.color.color'>Image.color.color</ref>, <ref resolved='predef::Image.color.guess'>Image.color.guess</ref>, <ref resolved='predef::Image'>Image</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group> + <p><ref resolved='predef::Image.color.color.name'>Image.color.color-&gt;name</ref>, <ref resolved='predef::Image.color.color.rgb'>Image.color.color-&gt;rgb</ref>, <ref resolved='predef::Image.color.color'>Image.color.color</ref>, <ref resolved='predef::Image.color.guess'>Image.color.guess</ref>, <ref resolved='predef::Image.Image'>Image</ref>, <ref resolved='predef::Image.colortable'>Image.colortable</ref></p></text></group>      </doc>   <docgroup homogen-type='method'>
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-&gt;<ref resolved='predef::Image.color.color.light'>light</ref>()-&gt;<ref resolved='predef::Image.color.color.dark'>dark</ref>() + <ref resolved='predef::Image.Image.color'>Image.color</ref>.white-&gt;<ref resolved='predef::Image.color.color.light'>light</ref>()-&gt;<ref resolved='predef::Image.color.color.dark'>dark</ref>()   doesn't give the white color back, but the equal to - <ref resolved='predef::Image.color'>Image.color</ref>.white-&gt;<ref resolved='predef::Image.color.color.dark'>dark</ref>(), since + <ref resolved='predef::Image.Image.color'>Image.color</ref>.white-&gt;<ref resolved='predef::Image.color.color.dark'>dark</ref>(), since   white can't get any <ref resolved='predef::Image.color.color.light'>light</ref>er.</p>   </text></group>   
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-&gt;grey</ref>(). + darker than green. Compare with <ref>Image.image-&gt;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.`&amp;'>`&amp;</ref>, - <ref resolved='predef::Image.image.`*'>`*</ref>, - <ref resolved='predef::Image.image.`+'>`+</ref>, - <ref resolved='predef::Image.image.`-'>`-</ref>, - <ref resolved='predef::Image.image.`=='>`==</ref>, - <ref resolved='predef::Image.image.`&gt;'>`&gt;</ref>, - <ref resolved='predef::Image.image.`&lt;'>`&lt;</ref>, - <ref resolved='predef::Image.image.`|'>`|</ref></p> -  - <p>pasting images, layers: <br/> - <ref 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&gt;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-&gt;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>-&gt;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>-&gt;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>-&gt;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>-&gt;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>-&gt;copy<br/>(5,5,<br/>XSIZE-6,YSIZE-6)</td> - <td>-&gt;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)&amp;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)²)&gt;&gt;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()-&gt;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>-&gt;grey();</td> -  <td>-&gt;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>-&gt;hsv_to_rgb();</td> -  <td>-&gt;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-&gt;tuned_box(0,0, 200,200, -  ({ ({ 255,255,128 }), ({ 0,255,128 }), -  ({ 255,255,255 }), ({ 0,255,255 })})) -  -&gt;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>-&gt;invert();</td> -  <td>-&gt;rgb_to_hsv()-&gt;invert()-&gt;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>-&gt;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-&gt;select_colors(200));</pre> - New code: - <pre>img=Image.colortable(img,200)-&gt;floyd_steinberg()-&gt;map(img);</pre></p> -  - <p>Old code: - <pre>img=map_closest(img-&gt;select_colors(17)+({({255,255,255}),({0,0,0})}));</pre> - New code: - <pre>img=Image.colortable(img,19,({({255,255,255}),({0,0,0})}))-&gt;map(img);</pre></p> - </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>-&gt;grey()-&gt;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>-&gt;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>-&gt;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>-&gt;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'>