Documentation

Horde_Image_Gd extends Horde_Image_Base
in package

This class implements the Horde_Image API for the PHP GD extension.

Tags
author

Chuck Hagenbuch chuck@horde.org

author

Michael J. Rubinsky mrubinsk@horde.org

author

Jan Schneider jan@horde.org

category

Horde

copyright

2002-2017 Horde LLC

license

http://www.horde.org/licenses/lgpl21 LGPL-2.1

Table of Contents

$_im  : resource
$_background  : string
Background color.
$_capabilities  : array<string|int, string>
Capabilites of this driver.
$_colors  : array<string|int, int>
Allocated color resources.
$_context  : mixed
Cache the context
$_data  : Horde_Stream
The current image data.
$_height  : int
The current height of the image data.
$_im  : resource
GD image resource for the current image data.
$_loadedEffects  : array<string|int, mixed>
Array containing available Effects
$_logger  : mixed
Logger.
$_tmpdir  : string
A directory for temporary files.
$_type  : string
What kind of images should ImageMagick generate? Defaults to 'png'.
$_width  : int
The current width of the image data.
__call()  : mixed
Catch-all method so that we don't error out when calling an unsupported manipulation method.
__construct()  : mixed
Constructor.
__get()  : mixed
addEffect()  : mixed
Attempts to apply requested effect to this image.
applyEffects()  : mixed
Applies any effects in the effect queue.
applyMask()  : mixed
Applies the specified mask to the image.
arc()  : mixed
Draws an arc.
brush()  : mixed
Draws a shaped point at the specified (x,y) point.
call()  : mixed
Wraps a call to a function of the gd extension.
circle()  : mixed
Draws a circle.
clearGeometry()  : mixed
Utility function to zero out cached geometry information.
create()  : resource
Creates an image of the given size.
crop()  : mixed
Crops the current image.
dashedLine()  : mixed
Draws a dashed line.
display()  : mixed
Displays the current image.
flip()  : mixed
Flips the current image.
getCapabilities()  : array<string|int, mixed>
Returns the capabilities.
getContentType()  : string
Returns the MIME type for this image.
getDimensions()  : array<string|int, mixed>
Returns the height and width of the current image data.
getImageAtIndex()  : Horde_Image_Base
Returns a specific image from the pages of images.
getImagePageCount()  : int
Returns the number of image pages available in the image object.
getLoadedEffects()  : mixed
Returns a list of available effects for this driver.
getTmpDir()  : string
Returns the current temporary directory.
getType()  : string
Returns the image type.
grayscale()  : mixed
Converts the current image to grayscale.
hasCapability()  : bool
Checks the existence of a particular capability.
headers()  : mixed
Sends HTTP headers for the image.
line()  : mixed
Draws a line.
loadFile()  : mixed
Loads the image data from a file.
loadString()  : mixed
Loads the image data from a string.
mirror()  : mixed
Mirrors the current image.
polygon()  : mixed
Draws a polygon based on a set of vertices.
polyline()  : mixed
Draws a polyline (a non-closed, non-filled polygon) based on a set of vertices.
raw()  : string
Returns the raw data for this image.
rectangle()  : mixed
Draws a rectangle.
reset()  : mixed
Resets the image data to defaults.
resize()  : mixed
Resizes the current image.
rotate()  : mixed
Rotates the current image.
roundedRectangle()  : mixed
Draws a rounded rectangle.
sepia()  : mixed
Applies a sepia filter.
setType()  : string
Sets the output image type.
text()  : mixed
Draws a text string on the image in a specified location, with the specified style information.
toFile()  : string
Saves image data to file.
yellowize()  : mixed
Applies a yellow filter.
_logDebug()  : mixed
Logs a message at debug level.
_logErr()  : mixed
Logs a message at error level.
_allocateColor()  : int
Creates a color that can be accessed in this object.
_getFont()  : int
Returns the numeric font size a from textual description.

Properties

$_im read-only

public resource $_im

The underlaying image resource.

$_background

Background color.

protected string $_background = 'white'

$_capabilities

Capabilites of this driver.

protected array<string|int, string> $_capabilities = array('canvas', 'circle', 'crop', 'dashedLine', 'flip', 'grayscale', 'line', 'mirror', 'polygon', 'polyline', 'rectangle', 'resize', 'rotate', 'roundedRectangle', 'sepia', 'text', 'yellowize')

$_colors

Allocated color resources.

protected array<string|int, int> $_colors = array()

$_context

Cache the context

protected mixed $_context

$_data

The current image data.

protected Horde_Stream $_data

$_height

The current height of the image data.

protected int $_height = 0

$_im

GD image resource for the current image data.

protected resource $_im

$_loadedEffects

Array containing available Effects

protected array<string|int, mixed> $_loadedEffects = array()

$_logger

Logger.

protected mixed $_logger

$_tmpdir

A directory for temporary files.

protected string $_tmpdir

$_type

What kind of images should ImageMagick generate? Defaults to 'png'.

protected string $_type = 'png'

$_width

The current width of the image data.

protected int $_width = 0

Methods

__call()

Catch-all method so that we don't error out when calling an unsupported manipulation method.

public __call(mixed $method, mixed $args) : mixed
Parameters
$method : mixed
$args : mixed
Return values
mixed

__construct()

Constructor.

public __construct(mixed $params[, mixed $context = array() ]) : mixed
Parameters
$params : mixed

The image object parameters. Values include:

  • background: (string) The background color. DEFAULT: white.
  • data: (string) The image binary data.
  • height: (integer) The desired image height.
  • type: (string) The output image type (png, jpeg etc.). DEFAULT: png.
  • width: (integer) The desired image width.
$context : mixed = array()

The object context - configuration, injected objects:

  • logger: (Horde_Log_Logger) A logger.
  • tmpdir: [REQUIRED] (string) Temporary directory.
Tags
see
Horde_Image_Base::_construct
Return values
mixed

__get()

public __get(mixed $property) : mixed
Parameters
$property : mixed
Return values
mixed

addEffect()

Attempts to apply requested effect to this image.

public addEffect(string $type, array<string|int, mixed> $params) : mixed
Parameters
$type : string

The type of effect to apply.

$params : array<string|int, mixed>

Any parameters for the effect.

Return values
mixed

applyEffects()

Applies any effects in the effect queue.

public applyEffects() : mixed
Return values
mixed

applyMask()

Applies the specified mask to the image.

public applyMask(resource $mask) : mixed
Parameters
$mask : resource

The gd image resource representing the mask

Return values
mixed

arc()

Draws an arc.

public arc(int $x, int $y, int $r, int $start, int $end[, string $color = 'black' ][, string $fill = null ]) : mixed
Parameters
$x : int

The x coordinate of the centre.

$y : int

The y coordinate of the centre.

$r : int

The radius of the arc.

$start : int

The start angle of the arc.

$end : int

The end angle of the arc.

$color : string = 'black'

The line color of the arc.

$fill : string = null

The fill color of the arc (defaults to none).

Return values
mixed

brush()

Draws a shaped point at the specified (x,y) point.

public brush(int $x, int $y[, string $color = 'black' ][, string $shape = 'square' ]) : mixed

Useful for scatter diagrams, debug points, etc. Draws squares, circles, diamonds, and triangles.

Parameters
$x : int

The x coordinate of the point to brush.

$y : int

The y coordinate of the point to brush.

$color : string = 'black'

The color to brush the point with.

$shape : string = 'square'

What brush to use? Defaults to a square.

Return values
mixed

call()

Wraps a call to a function of the gd extension.

public call(string $function[, array<string|int, mixed> $params = null ]) : mixed
Parameters
$function : string

The name of the function to wrap.

$params : array<string|int, mixed> = null

An array with all parameters for that function.

Tags
throws
Horde_Image_Exception
Return values
mixed

The result of the function call.

circle()

Draws a circle.

public circle(int $x, int $y, int $r, string $color[, string $fill = null ]) : mixed
Parameters
$x : int

The x coordinate of the centre.

$y : int

The y coordinate of the centre.

$r : int

The radius of the circle.

$color : string

The line color of the circle.

$fill : string = null

The color to fill the circle.

Return values
mixed

clearGeometry()

Utility function to zero out cached geometry information.

public clearGeometry() : mixed

Shouldn't really be called from client code, but is needed since effects may need to clear these.

Return values
mixed

create()

Creates an image of the given size.

public create(int $width, int $height) : resource

If possible the function returns a true color image.

Parameters
$width : int

The image width.

$height : int

The image height.

Tags
throws
Horde_Image_Exception
Return values
resource

The image handler.

crop()

Crops the current image.

public crop(int $x1, int $y1, int $x2, int $y2) : mixed
Parameters
$x1 : int

x for the top left corner.

$y1 : int

y for the top left corner.

$x2 : int

x for the bottom right corner.

$y2 : int

y for the bottom right corner.

Return values
mixed

dashedLine()

Draws a dashed line.

public dashedLine(int $x0, int $y0, int $x1, int $y1[, string $color = 'black' ][, string $width = 1 ][, int $dash_length = 2 ][, int $dash_space = 2 ]) : mixed
Parameters
$x0 : int

The x co-ordinate of the start.

$y0 : int

The y co-ordinate of the start.

$x1 : int

The x co-ordinate of the end.

$y1 : int

The y co-ordinate of the end.

$color : string = 'black'

The line color.

$width : string = 1

The width of the line.

$dash_length : int = 2

The length of a dash on the dashed line.

$dash_space : int = 2

The length of a space in the dashed line.

Return values
mixed

display()

Displays the current image.

public display() : mixed
Return values
mixed

flip()

Flips the current image.

public flip() : mixed
Return values
mixed

getCapabilities()

Returns the capabilities.

public getCapabilities() : array<string|int, mixed>
Return values
array<string|int, mixed>

A list of backend capabilities.

getContentType()

Returns the MIME type for this image.

public getContentType() : string
Return values
string

The MIME type for this image.

getDimensions()

Returns the height and width of the current image data.

public getDimensions() : array<string|int, mixed>
Return values
array<string|int, mixed>

A hash with 'width' containing the width, 'height' containing the height of the image.

getImageAtIndex()

Returns a specific image from the pages of images.

public getImageAtIndex(int $index) : Horde_Image_Base
Parameters
$index : int

The index to return.

Return values
Horde_Image_Base

The requested image

getImagePageCount()

Returns the number of image pages available in the image object.

public getImagePageCount() : int
Return values
int

The number of images.

getLoadedEffects()

Returns a list of available effects for this driver.

public getLoadedEffects() : mixed
Return values
mixed

getTmpDir()

Returns the current temporary directory.

public getTmpDir() : string
Return values
string

The current temporary directory.

getType()

Returns the image type.

public getType() : string
Return values
string

The type of this image (png, jpg, etc.).

grayscale()

Converts the current image to grayscale.

public grayscale() : mixed
Return values
mixed

hasCapability()

Checks the existence of a particular capability.

public hasCapability(string $capability) : bool
Parameters
$capability : string

The capability to check for.

Return values
bool

True if the backend has this capability.

headers()

Sends HTTP headers for the image.

public headers() : mixed
Return values
mixed

line()

Draws a line.

public line(int $x1, int $y1, mixed $x2, mixed $y2[, string $color = 'black' ][, string $width = 1 ]) : mixed
Parameters
$x1 : int

The x coordinate of the end.

$y1 : int

The y coordinate of the end.

$x2 : mixed
$y2 : mixed
$color : string = 'black'

The line color.

$width : string = 1

The width of the line.

Return values
mixed

loadFile()

Loads the image data from a file.

public loadFile(string $filename) : mixed
Parameters
$filename : string

The full path and filename to the file to load the image data from.

Return values
mixed

loadString()

Loads the image data from a string.

public loadString(string $image_data) : mixed
Parameters
$image_data : string

The data to use for the image.

Return values
mixed

mirror()

Mirrors the current image.

public mirror() : mixed
Return values
mixed

polygon()

Draws a polygon based on a set of vertices.

public polygon(mixed $verts, string $color[, string $fill = 'none' ]) : mixed
Parameters
$verts : mixed
$color : string

The color you want to draw the polygon with.

$fill : string = 'none'

The color to fill the polygon.

Return values
mixed

polyline()

Draws a polyline (a non-closed, non-filled polygon) based on a set of vertices.

public polyline(mixed $verts, string $color[, string $width = 1 ]) : mixed
Parameters
$verts : mixed
$color : string

The color you want to draw the line with.

$width : string = 1

The width of the line.

Return values
mixed

raw()

Returns the raw data for this image.

public raw([bool $convert = false ][, array<string|int, mixed> $options = array() ]) : string
Parameters
$convert : bool = false

Ignored for Gd driver.

$options : array<string|int, mixed> = array()

Array of options:

  • stream: If true, return as a stream resource. DEFAULT: false.
Return values
string

The raw image data.

rectangle()

Draws a rectangle.

public rectangle(int $x, int $y, int $width, int $height[, string $color = 'black' ][, string $fill = 'none' ]) : mixed
Parameters
$x : int

The left x-coordinate of the rectangle.

$y : int

The top y-coordinate of the rectangle.

$width : int

The width of the rectangle.

$height : int

The height of the rectangle.

$color : string = 'black'

The line color of the rectangle.

$fill : string = 'none'

The color to fill the rectangle.

Return values
mixed

reset()

Resets the image data to defaults.

public reset() : mixed
Return values
mixed

resize()

Resizes the current image.

public resize(int $width, int $height[, bool $ratio = true ][, bool $keepProfile = false ]) : mixed
Parameters
$width : int

The new width.

$height : int

The new height.

$ratio : bool = true

Maintain original aspect ratio.

$keepProfile : bool = false

Keep the image meta data (unused).

Return values
mixed

rotate()

Rotates the current image.

public rotate(int $angle[, string $background = 'white' ]) : mixed
Parameters
$angle : int

The angle to rotate the image by, in the clockwise direction.

$background : string = 'white'

The background color to fill any triangles.

Return values
mixed

roundedRectangle()

Draws a rounded rectangle.

public roundedRectangle(int $x, int $y, int $width, int $height, int $round[, string $color = 'black' ][, string $fill = 'none' ]) : mixed
Parameters
$x : int

The left x-coordinate of the rectangle.

$y : int

The top y-coordinate of the rectangle.

$width : int

The width of the rectangle.

$height : int

The height of the rectangle.

$round : int

The width of the corner rounding.

$color : string = 'black'

The line color of the rectangle.

$fill : string = 'none'

The color to fill the rounded rectangle with.

Return values
mixed

sepia()

Applies a sepia filter.

public sepia([int $threshold = 85 ]) : mixed
Parameters
$threshold : int = 85

Extent of sepia effect.

Return values
mixed

setType()

Sets the output image type.

public setType(string $type) : string
Parameters
$type : string

An image type (png, jpg, etc.)

Return values
string

The previous image type.

text()

Draws a text string on the image in a specified location, with the specified style information.

public text(mixed $string, int $x, int $y[, string $font = '' ][, string $color = 'black' ], int $direction[, string $fontsize = 'small' ]) : mixed
Parameters
$string : mixed
$x : int

The left x coordinate of the start of the text string.

$y : int

The top y coordinate of the start of the text string.

$font : string = ''

The font identifier you want to use for the text.

$color : string = 'black'

The color that you want the text displayed in.

$direction : int

An integer that specifies the orientation of the text.

$fontsize : string = 'small'

Size of the font (small, medium, large, giant)

Return values
mixed

toFile()

Saves image data to file.

public toFile([mixed $data = null ]) : string

If $data is false-ish, saves current image data after performing pending operations on the data. If $data contains raw image data, saves that data to file without regard for the current image data.

Parameters
$data : mixed = null
Tags
throws
Horde_Image_Exception
Return values
string

Path to temporary file.

yellowize()

Applies a yellow filter.

public yellowize([int $intensityY = 50 ][, int $intensityB = 3 ]) : mixed

Adds a layer of yellow that can be transparent or solid. If $intensityY is 255 the image will be 0% transparent (solid).

Parameters
$intensityY : int = 50

How strong should the yellow (red and green) be? (0-255)

$intensityB : int = 3

How weak should the blue be? (>= 2, in the positive limit it will be make BLUE 0)

Return values
mixed

_logDebug()

Logs a message at debug level.

protected _logDebug(string $message) : mixed
Parameters
$message : string

The log message.

Return values
mixed

_logErr()

Logs a message at error level.

protected _logErr(string $message) : mixed
Parameters
$message : string

The log message.

Return values
mixed

_allocateColor()

Creates a color that can be accessed in this object.

private _allocateColor(string $name, int $alpha) : int

When a color is set, the integer resource of it is returned.

Parameters
$name : string

The name of the color.

$alpha : int

Alpha transparency (0 - 127).

Return values
int

The resource of the color that can be passed to GD.

_getFont()

Returns the numeric font size a from textual description.

private _getFont(string $font) : int
Parameters
$font : string

A textual size description.

Return values
int

The font size supported by GD.

Search results