Documentation

Horde_Image_Imagick extends Horde_Image_Base
in package

Imagick driver for the Horde_Image API.

Tags
author

Michael J. Rubinsky mrubinsk@horde.org

category

Horde

copyright

2007-2017 Horde LLC

license

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

Table of Contents

$imagick  : Imagick
$_background  : string
Background color.
$_capabilities  : array<string|int, string>
Capabilites of this driver.
$_context  : mixed
Cache the context
$_data  : Horde_Stream
The current image data.
$_height  : int
The current height of the image data.
$_imagick  : Imagick
The underlaying Imagick object.
$_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.
$_noMoreImages  : bool
Flag for iterator, since calling nextImage on Imagick would result in a fatal error if there are no more images.
__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.
arc()  : mixed
Draws an arc.
brush()  : mixed
Draws a shaped point at the specified (x,y) point.
circle()  : mixed
Draws a circle.
clearGeometry()  : mixed
Utility function to zero out cached geometry information.
cloneImagickObject()  : Imagick
Wrapper around cloning the imagick resource object.
crop()  : mixed
Crops the current image.
current()  : Horde_Image_Imagick
Returns the current image from the internal iterator.
dashedLine()  : mixed
Draws a dashed line.
display()  : mixed
Displays the current image.
flattenImage()  : mixed
Flatten the provided image and remove transparency.
flip()  : mixed
Flips the current image.
frameImage()  : mixed
Utility function to wrap Imagick::borderImage.
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_Imagick
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.
key()  : int
Returns the index of the internal iterator.
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.
next()  : Horde_Image_Imagick
Advances the iterator.
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()  : mixed
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.
rewind()  : mixed
Resets the Imagick iterator to the first image in the set.
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.
valid()  : bool
Deterimines if the current iterator item is valid.
_logDebug()  : mixed
Logs a message at debug level.
_logErr()  : mixed
Logs a message at error level.

Properties

$imagick read-only

public Imagick $imagick

The underlaying Imagick object.

$_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', 'multipage', 'pdf', 'polygon', 'polyline', 'rectangle', 'resize', 'rotate', 'roundedRectangle', 'sepia', 'text')

$_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

$_imagick

The underlaying Imagick object.

protected Imagick $_imagick

$_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

$_noMoreImages

Flag for iterator, since calling nextImage on Imagick would result in a fatal error if there are no more images.

private bool $_noMoreImages = \false

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 —

arc()

Draws an arc.

public arc(int $x, int $y, int $r, int $start, int $end[, string $color = 'black' ][, string $fill = 'none' ]) : 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 = 'none'

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 —

circle()

Draws a circle.

public circle(int $x, int $y, int $r, string $color[, string $fill = 'none' ]) : 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 = 'none'

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 —

cloneImagickObject()

Wrapper around cloning the imagick resource object.

public cloneImagickObject([Imagick $imagick = null ]) : Imagick
Parameters
$imagick : Imagick = null

A imagick resource object to clone. If empty will clone the imagick object associated with this Horde_Imagice_Imagick object.

Tags
todo

Remove in H6 when we can increase version dependency of Imagick.

since
2.4.0
Return values
Imagick —

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 —

flattenImage()

Flatten the provided image and remove transparency.

public flattenImage([string $bgColor = 'white' ]) : mixed
Parameters
$bgColor : string = 'white'

The background color to use.

Return values
mixed —

flip()

Flips the current image.

public flip() : mixed
Return values
mixed —

frameImage()

Utility function to wrap Imagick::borderImage.

public static frameImage(Imagick &$image, string $color, int $width, int $height) : mixed

Use when you don't want to replace all pixels in the clipping area with the border color i.e. you want to "frame" the existing image. Preserves transparency etc.

Parameters
$image : Imagick

The Imagick object to border.

$color : string

The border color.

$width : int

The image width including the border.

$height : int

The image height including the border.

Tags
todo

Make non-static for H6.

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> —

An 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[, bool $flatten = false ][, string $bgColor = 'white' ]) : Horde_Image_Imagick
Parameters
$index : int

The index to return.

$flatten : bool = false

If true, flatten the returned image using $bgColor as the background color. Useful for PDF files to remove transparency before rendering.

$bgColor : string = 'white'

The background color to use when flattening the image.

Return values
Horde_Image_Imagick —

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 —

key()

Returns the index of the internal iterator.

public key() : int
Return values
int —

line()

Draws a line.

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

The x coordinate of the start.

$y0 : int

The y coordinate of the start.

$x1 : int

The x coordinate of the end.

$y1 : int

The y coordinate of the end.

$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.

Tags
throws
Horde_Image_Exception
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.

Tags
throws
Horde_Image_Exception
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() ]) : mixed
Parameters
$convert : bool = false

Ignored for Imagick driver.

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

Array of options:

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

The raw image data as a string or stream resource.

rectangle()

Draws a rectangle.

public rectangle(int $x, int $y, int $width, int $height, string $color[, 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

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.

Return values
mixed —

rewind()

Resets the Imagick iterator to the first image in the set.

public rewind() : mixed
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, string $fill) : 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

The line color of the rectangle.

$fill : string

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)

Tags
TODO:

Need to differentiate between the stroke (border) and the fill color, but this is a BC break, since we were just not providing a border.

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.

valid()

Deterimines if the current iterator item is valid.

public valid() : bool
Return values
bool —

_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 —

Search results