diff options
| author | pp <pp@455248ca-bdda-0310-9134-f4ebb693071a> | 2004-05-19 04:59:31 +0000 |
|---|---|---|
| committer | pp <pp@455248ca-bdda-0310-9134-f4ebb693071a> | 2004-05-19 04:59:31 +0000 |
| commit | d0a9b9a03fc7ae74ef8a64593ac6b592526ec4d5 (patch) | |
| tree | e03d2a7fac8c7619f1286545f717ef7ee3866cd6 /docs | |
- initial import
git-svn-id: https://siedziba.pl:790/svn/repos/php-imlib/trunk@7 455248ca-bdda-0310-9134-f4ebb693071a
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/api.txt | 442 | ||||
| -rw-r--r-- | docs/class.ImlibCliprect.php | 132 | ||||
| -rw-r--r-- | docs/class.ImlibColor.php | 94 | ||||
| -rw-r--r-- | docs/class.ImlibColorRange.php | 141 | ||||
| -rw-r--r-- | docs/class.ImlibDraw.php | 167 | ||||
| -rw-r--r-- | docs/class.ImlibImage.php | 436 | ||||
| -rw-r--r-- | docs/class.ImlibPoly.php | 190 | ||||
| -rw-r--r-- | docs/class.ImlibText.php | 147 | ||||
| -rw-r--r-- | docs/package.Imlib.php | 11 |
9 files changed, 1760 insertions, 0 deletions
diff --git a/docs/api.txt b/docs/api.txt new file mode 100644 index 0000000..cdbe9c2 --- /dev/null +++ b/docs/api.txt @@ -0,0 +1,442 @@ +Documentation +============= + +Below is a brief blurb about each of the functions in the php_imlib +extension. For examples of how these are used, see the examples page. +There are also some PHP classes included with php_imlib (Which also +have examples posted on the examples page). These classfiles have been +documented using the PHPDoc documentation system. That documentation +can be found here. + +Predefined Constants +-------------------- + +IMLIB_TEXT_TO_RIGHT +IMLIB_TEXT_TO_LEFT +IMLIB_TEXT_TO_DOWN +IMLIB_TEXT_TO_UP +IMLIB_TEXT_TO_ANGLE +IMLIB_TTF_ENCODING_ISO_8859_1 +IMLIB_TTF_ENCODING_ISO_8859_2 +IMLIB_TTF_ENCODING_ISO_8859_3 +IMLIB_TTF_ENCODING_ISO_8859_4 +IMLIB_TTF_ENCODING_ISO_8859_5 +IMLIB_CHANNEL_RED +IMLIB_CHANNEL_GREEN +IMLIB_CHANNEL_BLUE +IMLIB_CHANNEL_ALPHA +IMLIB_LOAD_ERROR_NONE +IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST +IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY +IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_READ +IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT +IMLIB_LOAD_ERROR_PATH_TOO_LONG +IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT +IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY +IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE +IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS +IMLIB_LOAD_ERROR_OUT_OF_MEMORY +IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS +IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE +IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE +IMLIB_LOAD_ERROR_UNKNOWN + +Function List +------------- + +imlib_add_color_to_color_range +imlib_blend_image_onto_image +imlib_clone_image +imlib_create_color_range +imlib_create_cropped_image +imlib_create_cropped_scaled_image +imlib_create_image +imlib_create_rotated_image +imlib_image_orientate +imlib_create_scaled_image +imlib_dump_image +imlib_free_color_range +imlib_free_font +imlib_free_image +imlib_get_text_size +imlib_image_blur +imlib_image_draw_ellipse +imlib_image_draw_line +imlib_image_draw_polygon +imlib_image_draw_rectangle +imlib_image_fill_color_range_rectangle +imlib_image_fill_ellipse +imlib_image_fill_polygon +imlib_image_fill_rectangle +imlib_image_flip_horizontal +imlib_image_flip_vertical +imlib_image_flip_diagonal +imlib_image_format +imlib_image_get_filename +imlib_image_get_height +imlib_image_get_width +imlib_image_has_alpha +imlib_image_modify_alpha +imlib_image_set_format +imlib_image_sharpen +imlib_image_tile_horizontal +imlib_image_tile_vertical +imlib_image_tile +imlib_list_fonts +imlib_load_font +imlib_load_image +imlib_polygon_add_point +imlib_polygon_contains_point +imlib_polygon_free +imlib_polygon_get_bounds +imlib_polygon_new +imlib_save_image +imlib_text_draw +imlib_psloadfont +imlib_psfreefont +imlib_psencodefont +imlib_psextendfont +imlib_psslantfont +imlib_pstext +imlib_psbbox +imlib_get_cache_size +imlib_set_cache_size +imlib_create_filter +imlib_free_filter +imlib_image_filter +imlib_filter_set +imlib_filter_set_alpha +imlib_filter_set_red +imlib_filter_set_green +imlib_filter_set_blue +imlib_filter_constants +imlib_filter_divisors +imlib_apply_filter +imlib_modify_color_modifier_gamma +imlib_modify_color_modifier_brightness +imlib_modify_color_modifier_contrast +imlib_reset_color_modifier +imlib_apply_color_modifier +imlib_set_color_modifier +imlib_get_color_modifier + +Getting and Setting Image Parameters +------------------------------------ + +string imlib_image_format(int img) + Returns the image format of an image + +string imlib_image_get_filename(int img) + Returns the filename of an image + +int imlib_image_get_height(int img) + Returns the height of an image + +int imlib_image_get_width(int img) + Returns the width of an image + +bool imlib_image_has_alpha(int img) + Return a boolean for whether or not an image has an alpha + channel + +void imlib_image_modify_alpha(int img, int alpha) + Set the alpha channel of an image, or modify it if one was + already present + +void imlib_image_set_format(int img, string format) + Sets the image format of an image. + +Loading/Saving Functions +------------------------ + +void imlib_free_image(int img) + Free an image + +int imlib_load_image(string img[, int &err]) + Load a file into an image, optionally fetch an error parameter + +bool imlib_save_image(int img, string name[, int &err[, int quality]]) + Save an image to a file, at an optional quality level (1-100) + for jpegs. For pngs, the value will be converted to a + compression level (0-9) + +Creation Functions +------------------ + +int imlib_clone_image(int img) + Duplicate an image + +int imlib_create_color_range() + Create a new color range + +int imlib_create_cropped_image(int img, int srcx, int srcy, int srcw, + int srch) + Create an image from a cropped region of another image + +int imlib_create_cropped_scaled_image(int img, int srcx, int srcy, int + srcw, int srch, int dstw, int dsth) + Create a scaled image from a cropped region of another image + +int imlib_create_image(int w, int h) + Create a new image with the specified dimensions + +int imlib_create_rotated_image(int srcimg, int degrees[, int radians]) + Create a rotated copy of an image. If radians is specified, + degrees will be ignored. + +int imlib_create_scaled_image(int img, int dstw, int dsth) + Create a scaled copy of an image. If dstw or dsth is left + blank, the aspect ratio of the source image will be preserved. + +bool imlib_dump_image(int img[, int &err[, int quality]]) + Output an image at an optional quality setting + +Rendering Functions +------------------- + +void imlib_blend_image_onto_image(int dstimg, int srcimg, int malpha, + int srcx, int srcy, int srcw, int srch, int dstx, int dsty, int + dstw, int dsth, char dither, char blend, char alias) + Blend a rectangular area from an image onto an area of another + image, scaling as necessary + +Image Modification Functions +---------------------------- + +void imlib_image_blur(int img, int radius) + Blur an image with a given blur radius + +void imlib_image_flip_horizontal(int img) + Flip an image horizontally + +void imlib_image_flip_vertical(int img) + Flip an Imlib_Image vertically + +void imlib_image_flip_diagonal(int img) + Flip an image diagonally + +void imlib_image_orientate(int img, int stepping) + Orientate an image 90 x steps + +void imlib_image_tile_horizontal(int img) + Tile an image horizontally + +void imlib_image_tile_vertical(int img) + Tile an image vertically + +void imlib_image_tile(int img) + Tile an image horizontally and diagonally + +void imlib_image_sharpen(int img, int radius) + Sharpen an image with a given sharpen radius + +Drawing on Images +----------------- + +bool imlib_image_draw_ellipse(int img, int xc, int yc, int w, int h, + int r, int g, int b, int a[, array cliprect]) + Draw an ellipse of the specified size and color on an image + +bool imlib_image_draw_line(int img, int x1, int y1, int x2, int y2, + int r, int g, int b, int a[, array cliprect]) + Draw a line of the specified size and color on an image + +bool imlib_image_draw_polygon(int img, int polygon, bool closed, int + r, int g, int b, int a[, array cliprect]) + Draw the defined polygon on an image + +bool imlib_image_draw_rectangle(int img, int x, int y, int w, int h, + int r, int g, int b, int a[, array cliprect]) + Draw a rectangle of the specified size and color on an image + +bool imlib_image_fill_color_range_rectangle(int im, int cr, int x, int + y, int width, int height, int angle) + Fill a rectangle with a color range at a given angle on an + image + +void imlib_image_fill_ellipse(int img, int xc, int yc, int w, int h, + int r, int g, int b, int a[, array cliprect]) + Fill an ellipse of the specified size and color on an image + +bool imlib_image_fill_polygon(int img, int polygon, int r, int g, int + b, int a[, array cliprect]) + Draw and fill the defined polygon on an image + +void imlib_image_fill_rectange(int img, int x, int y, int w, int h, + int r, int g, int b, int a[, array cliprect]) + Fill a rectangle of the specified size and color on an image + +Fonts and Text Functions +------------------------ + +void imlib_free_font(int font) + Free a font + +void imlib_get_text_size(int font, string str, int &w, int &h, int + direction) + Determines the width and height of a string if drawn with a + given font in the specified direction + +array imlib_list_fonts() + Return an array of all the fonts available in the font path + +int imlib_load_font(string fontname[, string encoding]) + Load a font + +void imlib_text_draw(int img, int font, int x, int y, string str, int + direction, int r, int g, int b, int a) + Draw a text string using a font onto an image + +T1 Functions +------------ + +These functions are almost identical to T1 functions in GD, please +consult GD documentation for more information on specific parameters. + +Please note that font resources are NOT interchangeable between GD and +imlib. + +int imlib_psloadfont(string pathname) + Load a new font from specified file + +bool imlib_psfreefont(int font_index) + Free memory used by a font + +bool imlib_psencodefont(int font_index, string filename) + To change a fonts character encoding vector + +bool imlib_psextendfont(int font_index, double extend) + Extend or or condense (if extend < 1) a font + +bool imlib_psslantfont(int font_index, double slant) + Slant a font + +array imlib_pstext(int img, string text, int font, int size, int x, int + y, int r, int g, int b, int a [, int space[, int tightness[, double + angle[, int antialias]]]]) + Rasterize a string over an image. + +array imlib_psbbox(string text, int font, int size [, int space, int + tightness, int angle]) + Return the bounding box needed by a string if rasterized + +Color Ranges +------------ + +void imlib_add_color_to_color_range(int cr, int x, int r, int g, int + b, int a) + Add a color to a color range at a specified distance from the + previous color in the range. A distance of 0 centers it + +void imlib_free_color_range(int cr) + Free a color range + +Polygons +-------- + +void imlib_polygon_add_point(int polygon, int x, int y) + Add a point to a given polygon + +bool imlib_polygon_contains_point(int polygon, int x, int y) + Check if a give point is inside a polygon + +void imlib_polygon_free(int polygon) + Free a polygon + +void imlib_polygon_get_bounds(int polygon, int &x1, int &y1, int &x2, + int &y2) + Get the bounding coords of a polygon + +int imlib_polygon_new() + Create a new polygon + +Image Cache +----------- + +void imlib_set_cache_size(int bytes) + Set the size of image cache + +int imlib_get_cache_size() + Get the size of image cache + +Filters +------- + +int imlib_create_filter(void) + Create a new filter + +void imlib_free_filter(int filter) + Free a filter + +void imlib_image_filter(int img, int filter) + Apply filter to an image + +void imlib_filter_set(int filter, int xoff, int yoff, int a, int r, int + g, int b) + Set weights for source pixel at (xoff,yoff). All components of + the destination pixel will be affected. + +void imlib_filter_set_alpha(int filter, int xoff, int yoff, int a, int r, + int g, int b) + Set weights for source pixel at (xoff,yoff). Only alpha component + of the destination pixel will be affected. + +void imlib_filter_set_red(int filter, int xoff, int yoff, int a, int r, + int g, int b) + Set weights for source pixel at (xoff,yoff). Only red component of + the destination pixel will be affected. + +void imlib_filter_set_green(int filter, int xoff, int yoff, int a, int r, + int g, int b) + Set weights for source pixel at (xoff,yoff). Only green component + of the destination pixel will be affected. + +void imlib_filter_set_blue(int filter, int xoff, int yoff, int a, int r, + int g, int b) + Set weights for source pixel at (xoff,yoff). Only blue component + of the destination pixel will be affected. + +void imlib_filter_constants(int filter, int a, int r, int g, int b) + Set filter constants + +void imlib_filter_divisors(int filter, int a, int r, int g, int b) + Set filter divisors + +External Filters +---------------- + +void imlib_apply_filter(int img, string filter, array params) + Apply external filter to an image + +Color Modifiers +--------------- + +int imlib_create_color_modifier(void) + Create a new color modifier + +void imlib_free_color_modifier(int cm) + Free a color modifier + +void imlib_modify_color_modifier_gamma(int cm, double gamma_value) + Adjust color modifier gamma + +void imlib_modify_color_modifier_brightness(int cm, double brightness_value) + Adjust color modifier brightness + +void imlib_modify_color_modifier_contrast(int cm, double contrast_value) + Adjust color modifier contrast + +void imlib_reset_color_modifier(int cm) + Reset color modifier to default (one-to-one) mapping + +void imlib_apply_color_modifier(int img, int cm[, int x, int y, int width, + int height]) + Apply color modifier to an image or its part + +void imlib_set_color_modifier(int cm, int index, int value[, int channels]) + Set color modifier value at given index for given channels (or all if + not specified) + +void imlib_get_color_modifier(int cm, int index, int &red, int &green, int + &blue, int &alpha + Get color modifier values at given index diff --git a/docs/class.ImlibCliprect.php b/docs/class.ImlibCliprect.php new file mode 100644 index 0000000..e731784 --- /dev/null +++ b/docs/class.ImlibCliprect.php @@ -0,0 +1,132 @@ +<?php + +/** +* Provides variables and methods for a clipping rectangle +* +* The variables and methods in this class provide a clipping rectangle that +* can be used by any drawing function to restrict drawing/filling to a +* rectangular region. +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibCliprect extends ImlibColor +{ + /** + * The array defining the cliprect (x,y,w,h) + * + * @var array $cliprect + * @access private + */ + var $cliprect; + + /** + * A boolean that determines if a cliprect is in use or not + * + * @var bool $cliprect_inuse + */ + var $cliprect_inuse; + + /** + * ImlibCliprect constructor + * + * @access public + */ + function ImlibCliprect() { $this->cliprect_inuse = 0; } + + /** + * Get the four values of the cliprect + * + * @param int Upper left X coordinate to clip from + * @param int Upper left Y coordinate to clip from + * @param int Width of the cliprect + * @param int Height of the cliprect + * @access public + * @see set_cliprect() + */ + function get_cliprect(&$x,&$y,&$w,&$h) + { + list($x,$y,$w,$h) = $this->cliprect; + } + + /** + * Get the array that defines the cliprect (x,y,w,h) + * + * @return array Array defining the clipping rectangle + * @access public + * @see set_cliprect_array() + */ + function get_cliprect_array() + { + return $this->cliprect; + } + + /** + * Get the boolean that determines if a cliprect is in use or not + * + * @return bool True if the cliprect is in use + * @access public + * @see set_cliprect_inuse() + */ + function get_cliprect_inuse() + { + return $this->cliprect_inuse; + } + + /** + * Set the four values of the cliprect. 0 for X disables the cliprect. + * + * @param int Upper left X coordinate to clip from + * @param int Upper left Y coordinate to clip from + * @param int Width of the cliprect + * @param int Height of the cliprect + * @access public + * @see get_cliprect() + */ + function set_cliprect($x,$y,$w,$h) + { + if ($x == 0) + { + $this->cliprect = 0; + $this->cliprect_inuse = 0; + return; + } + $this->cliprect_inuse = 1; + $this->cliprect = Array($x,$y,$w,$h); + } + + /** + * Set the array that defines the cliprect (x,y,w,h) + * + * @param array Array that defines the cliprect + * @access public + * @see get_cliprect_array() + */ + function set_cliprect_array($arr) + { + if ($arr[0] == 0) + { + $this->cliprect = 0; + $this->cliprect_inuse = 0; + return; + } + $this->cliprect_inuse = 1; + $this->cliprect = $arr; + } + + /** + * Set the boolean that determines if the cliprect is in use + * + * @param bool True to enable, false to disable + * @access public + * @see get_cliprect_inuse() + */ + function set_cliprect_inuse($set) + { + $this->cliprect_inuse = $set; + } +}; + +?> diff --git a/docs/class.ImlibColor.php b/docs/class.ImlibColor.php new file mode 100644 index 0000000..b15e664 --- /dev/null +++ b/docs/class.ImlibColor.php @@ -0,0 +1,94 @@ +<?php + +/** +* Provides variables and methods for handling color +* +* The variables and methods in this class provide a way to get and set the +* color to be used by any text or drawing functions. +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibColor +{ + /** + * The array defining the color (r,g,b,a) + * + * @var array $color + * @access private + */ + var $color; + + /** + * ImlibColor constructor + * + * @access public + */ + function ImlibColor() + { + $this->color = 0; + } + + /** + * Get the four color components as by-reference variables + * + * @param int &$r Red + * @param int &$g Blue + * @param int &$b Green + * @param int &$a Alpha + * @return mixed False if a color isn't set, the color array otherwise + * @access public + */ + function get_color(&$r,&$g,&$b,&$a) + { + if ($this->color) + list($r,$g,$b,$a) = $this->color; + else + return false; + + return $this->color; + } + + /** + * Get the color array currently defined, if it is defined + * + * @return mixed False if a color isn't set, the color array otherwise + * @access public + */ + function get_color_array() + { + if (!$this->color) + return false; + + return $this->color; + } + + /** + * Set the current color using the four components + * + * @param int Red + * @param int Blue + * @param int Green + * @param int Alpha + * @access public + */ + function set_color($r,$g,$b,$a) + { + $this->color = Array($r,$g,$b,$a); + } + + /** + * Set the current color using an array of 4 elements (r,g,b,a) + * + * @param array Color array + * @access public + */ + function set_color_array($arr) + { + $this->color = $arr; + } +}; + +?> diff --git a/docs/class.ImlibColorRange.php b/docs/class.ImlibColorRange.php new file mode 100644 index 0000000..6f01dd2 --- /dev/null +++ b/docs/class.ImlibColorRange.php @@ -0,0 +1,141 @@ +<?php + +/** +* All functions relevant to creating and displaying color ranges +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibColorRange extends ImlibCliprect +{ + /** + * Resource id# of the current color range + * + * @access private + */ + var $cr; + + /** + * Resource id# of the image to draw on + * + * @access private + */ + var $im; + + /** + * ImlibColorRange constructor + * + * @access public + */ + function ImlibColorRange() + { + $this->cr = 0; + $this->im = 0; + } + + /** + * Add a color to the color range at distance $x. + * + * A distance of 0 will center it between the previous color and the end. + * $x is ignored for the first color. + * + * @param int Distance from the previous color + * @param int Red + * @param int Blue + * @param int Green + * @param int Alpha + * @access public + */ + function add_color($x,$r,$g,$b,$a) + { + if (!is_resource($this->cr)) + return false; + + imlib_add_color_to_color_range($this->cr,$x,$r,$g,$b,$a); + } + + /** + * Add a color to the color range at distance $x. + * + * A distance of 0 will center it between the previous color and the end. + * $x is ignored for the first color. + * + * @param int Distance from the previous color + * @param array Color array (r,g,b,a) + * @access public + */ + function add_color_array($x,$arr) + { + list($r,$g,$b,$a) = $arr; + $this->add_color($x,$r,$g,$b,$a); + } + + /** + * Create a new color range + * + * @return int Resource id# of the new color range + * @access public + */ + function create() + { + if (is_resource($this->cr)) + return false; + + return $this->cr = imlib_create_color_range(); + } + + /** + * Free the current color range + * + * @access public + */ + function free() + { + if (!is_resource($this->cr)) + return false; + + imlib_free_color_range($this->cr); + unset($this->cr); + } + + /** + * Fill the current image with a rectangle using the current color range + * + * The color range will be filled in the specified box at angle $angle + * + * @param int Upper-left X coordinate of the box + * @param int Upper-left Y coordinate of the box + * @param int Width of the box + * @param int Height of the box + * @param int Angle to rotate the color range (degrees) + * @access public + */ + function fill_rectangle($x,$y,$w,$h,$angle) + { + if (!is_resource($this->im) || !is_resource($this->cr)) + return false; + + if ($this->cliprect_inuse) + return imlib_image_fill_color_range_rectangle($this->im,$this->cr, + $x,$y,$w,$h,$angle,$this->get_cliprect_array()); + else + return imlib_image_fill_color_range_rectangle($this->im,$this->cr, + $x,$y,$w,$h,$angle); + } + + /** + * Set the image to draw the color range on + * + * @param int Resource id# of the image + * @access public + */ + function set_image($im) + { + if (is_resource($im)) + $this->im = $im; + } +}; + +?> diff --git a/docs/class.ImlibDraw.php b/docs/class.ImlibDraw.php new file mode 100644 index 0000000..4c24a0b --- /dev/null +++ b/docs/class.ImlibDraw.php @@ -0,0 +1,167 @@ +<?php + +/** +* Does everything relevant to drawing or filling ellipses, lines, or rectangles +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibDraw extends ImlibCliprect +{ + /** + * Resource id# of the image to draw on + * + * @access private + */ + var $im; + + /** + * ImlibDraw constructor + * + * @access public + */ + function ImlibDraw() + { + $this->cliprect = 0; + $this->cliprect_inuse = 0; + $this->color = 0; + $this->im = 0; + } + + /** + * Callback for drawing everything + * + * Since all the drawing functions work the same way, this function + * does all the work. It takes four ints, often x,y,w,h, and passes + * them to the specified function. + * + * @param int First param + * @param int Second param + * @param int Third param + * @param int Fourth param + * @param string The name of the function to call + * @return bool False if no image is set yet + * @access private + */ + function _draw_something($x,$y,$w,$h,$cb) + { + if (!is_resource($this->im)) + return false; + + if (!$this->get_color($r,$g,$b,$a)) + list($r,$g,$b,$a) = Array(255,255,255,255); + + $cbname = 'imlib_image_' . $cb; + + if ($this->cliprect_inuse) + return $cbname($this->im,$x,$y,$w,$h,$r,$g,$b,$a, + $this->get_cliprect_array()); + else + return $cbname($this->im,$x,$y,$w,$h,$r,$g,$b,$a); + } + + /** + * Draw an ellipse + * + * @param int Center X coordinate + * @param int Center Y coordinate + * @param int Ellipse horizontal amplitude + * @param int Ellipse vertical amplitude + * + * @return bool False if no image is set yet + * @access public + */ + function draw_ellipse($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'draw_ellipse'); + } + + /** + * Draw a line + * + * @param int First X coordinate + * @param int First Y coordinate + * @param int Second X coordinate + * @param int Second Y coordinate + * + * @return bool False if no image is set yet + * @access public + */ + function draw_line($x1,$y1,$x2,$y2) + { + return $this->_draw_something($x1,$y1,$x2,$y2,'draw_line'); + } + + /** + * Draw a rectangle + * + * @param int Upper left X coordinate + * @param int Upper left Y coordinate + * @param int Width + * @param int Height + * + * @return bool False if no image is set yet + * @access public + */ + function draw_rectangle($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'draw_rectangle'); + } + + /** + * Fill an ellipse + * + * @param int Center X coordinate + * @param int Center Y coordinate + * @param int Ellipse horizontal amplitude + * @param int Ellipse vertical amplitude + * + * @return bool False if no image is set yet + * @access public + */ + function fill_ellipse($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'fill_ellipse'); + } + + /** + * Fill a rectangle + * + * @param int Upper left X coordinate + * @param int Upper left Y coordinate + * @param int Width + * @param int Height + * + * @return bool False if no image is set yet + * @access public + */ + function fill_rectangle($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'fill_rectangle'); + } + + /** + * Get the current image resource id# + * + * @access public + */ + function get_image() + { + return $this->im; + } + + /** + * Set the image resource id# to draw on + * + * @param int Image resource id# + * @access public + */ + function set_image($im) + { + $this->im = $im; + } +}; + +?> diff --git a/docs/class.ImlibImage.php b/docs/class.ImlibImage.php new file mode 100644 index 0000000..abb0462 --- /dev/null +++ b/docs/class.ImlibImage.php @@ -0,0 +1,436 @@ +<?php + +/** +* Handles image loading and saving, parameters, manipulation, and rendering. +* +* This class contains methods for the loading and saving of image files. Also +* contained in this class are functions for getting and setting image parameters, +* image modification, and rendering. +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibImage +{ + /** + * The image resource id# + * + * @var integer $id + * @see create(), get_id() + * @access private + */ + var $id; + + /** + * ImlibImage constructor + * + * @access public + */ + function ImlibImage() { $this->id = 0; } + + /** + * Callback for functions which query the current instance's attributes + * + * @param string The name of the function to call + * @return mixed String or int + * @access private + */ + function _get_cb($cb) + { + if (!is_resource($this->id)) + return false; + + $cbname = 'imlib_image_' . $cb; + return $cbname($this->id); + } + + /** + * Callback for functions which flip or tile the current instance + * + * @param string The name of the function to call + * @access private + */ + function _no_param_cb($cb) + { + if (!is_resource($this->id)) + return false; + + $cbname = 'imlib_image_' . $cb; + return $cbname($this->id); + } + + /** + * Blend a region of the current image onto the region of another ImlibImage + * + * @param int Resource id# of the destination image + * @param bool Merge alpha + * @param int Upper left source X coordinate + * @param int Upper left source Y coordinate + * @param int Source width + * @param int Source height + * @param int Upper left destination X coordinate + * @param int Upper left destination Y coordinate + * @param int Destination width + * @param int Destination height + * @param bool Dither + * @param bool Blend + * @param bool Alias + * @access public + */ + function blend_onto_image($dst,$alpha,$sx,$sy,$sw,$sh,$dx,$dy,$dw,$dh, + $dither,$blend,$alias) + { + if (!is_resource($this->id) || !is_resource($dst)) + return false; + + imlib_blend_image_onto_image($dst,$this->id,$alpha,$sx,$sy,$sw,$sh, + $dx,$dy,$dw,$dh,$dither,$blend,$alias); + } + + /** + * Blur an image with a given blur radius + * + * @param int Blur radius + * @access public + */ + function blur($r) + { + imlib_image_blur($this->id,$r); + } + + /** + * Create a clone of the current instance, return a new ImlibImage + * + * @return object ImlibImage + * @access public + */ + function create_clone() + { + if (!is_resource($this->id)) + return false; + + $clone = new ImlibImage(); + $clone->id = imlib_clone_image($this->id); + + return $clone; + } + + /** + * Create a cropped ImlibImage from a region of the current instance, return a new ImlibImage + * + * @param int Upper left X coordinate to crop from |
