Skip to content

Phalcon Image

Updated View as Markdown

Image\Adapter\AbstractAdapter

AbstractSource on GitHub

All image adapters must use this class

Uses Phalcon\Image\Enum · Phalcon\Image\Exception · Phalcon\Image\Exceptions\InvalidColor · Phalcon\Image\Exceptions\MissingDimensions · Phalcon\Image\Exceptions\MissingHeight · Phalcon\Image\Exceptions\MissingWidth

Method Summary

publicAdapterInterfacebackground(string$color,int$opacity = 100)Set the background color of an imagepublicAdapterInterfaceblur( int$radius )Blur imagepublicAdapterInterfacecrop(int$width,int$height,mixed$offsetX = null,mixed$offsetY = null)Crop an image to the given sizepublicAdapterInterfaceflip( int$direction )Flip the image along the horizontal or vertical axispublicintgetHeight()publicgetImage()publicstringgetMime()publicstringgetRealpath()publicintgetType()publicintgetWidth()publicAdapterInterfacemask( AdapterInterface$mask )Composite one image onto anotherpublicAdapterInterfacepixelate( int$amount )Pixelate imagepublicAdapterInterfacereflection(int$height,int$opacity = 100,bool$fadeIn = false)Add a reflection to an imagepublicstringrender(string$extension = null,int$quality = 100)Render the image and return the binary stringpublicAdapterInterfaceresize(int$width = null,int$height = null,int$master = Enum::AUTO)Resize the image to the given sizepublicAdapterInterfacerotate( int$degrees )Rotate the image by a given amountpublicAdapterInterfacesave(string$file = null,int$quality = -1)Save the imagepublicAdapterInterfacesharpen( int$amount )Sharpen the image by a given amountpublicAdapterInterfacetext(string$text,mixed$offsetX = false,mixed$offsetY = false,int$opacity = 100,string$color = "000000",int$size = 12,string$fontFile = null)Add a text to an image with a specified opacitypublicAdapterInterfacewatermark(AdapterInterface$watermark,int$offsetX = 0,int$offsetY = 0,int$opacity = 100)Add a watermark to an image with the specified opacityprotectedintcheckHighLow(int$value,int$min = 0,int$max = 100)protectedvoidprocessBackground(int$red,int$green,int$blue,int$opacity)Renders the supplied colour onto the image as the background. ChannelsprotectedvoidprocessBlur( int$radius )Applies a blur. The radius is already clamped to 1-100.protectedvoidprocessCrop(int$width,int$height,int$offsetX,int$offsetY)Crops the image. Width, height and both offsets are already normalizedprotectedvoidprocessFlip( int$direction )Flips the image. The direction is already normalized toprotectedprocessMask( AdapterInterface$mask )Composites the supplied image as a mask onto this one. The mask is readprotectedvoidprocessPixelate( int$amount )Pixelates the image. The amount is already at least 2.protectedvoidprocessReflection(int$height,int$opacity,bool$fadeIn)Adds a reflection. The height is clamped to the image height and theprotectedprocessRender(string$extension,int$quality)Renders the image to a binary string. The extension is non-empty and theprotectedvoidprocessResize(int$width,int$height)Resizes the image. Width and height are already resolved to positiveprotectedvoidprocessRotate( int$degrees )Rotates the image. The degrees value is already normalized to -180..180.protectedprocessSave(string$file,int$quality)Saves the image to the supplied file path.protectedvoidprocessSharpen( int$amount )Sharpens the image. The amount is already clamped to 1-100.protectedvoidprocessText(string$text,mixed$offsetX,mixed$offsetY,int$opacity,int$red,int$green,int$blue,int$size,string$fontFile = null)Renders text onto the image. The opacity is clamped to 0-100 and theprotectedvoidprocessWatermark(AdapterInterface$watermark,int$offsetX,int$offsetY,int$opacity)Composites the supplied watermark onto this image. Offsets and opacity

Properties

protectedstring$file
protectedint$heightImage height
protectedmixed|null$image = null
protectedstring$mimeImage mime type
protectedstring$realpath
protectedint$typeImage type Driver dependent
protectedint$widthImage width

Methods

Public · 20

background()

public function background(
    string $color,
    int $opacity = 100
): AdapterInterface;

Set the background color of an image

blur()

public function blur( int $radius ): AdapterInterface;

Blur image

crop()

public function crop(
    int $width,
    int $height,
    mixed $offsetX = null,
    mixed $offsetY = null
): AdapterInterface;

Crop an image to the given size

flip()

public function flip( int $direction ): AdapterInterface;

Flip the image along the horizontal or vertical axis

getHeight()

public function getHeight(): int;

getImage()

public function getImage();

getMime()

public function getMime(): string;

getRealpath()

public function getRealpath(): string;

getType()

public function getType(): int;

getWidth()

public function getWidth(): int;

mask()

public function mask( AdapterInterface $mask ): AdapterInterface;

Composite one image onto another

The mask is read through its public render() output rather than its internal handle, so a mask created with a different backend composites correctly. The cost is one encode/decode round trip per call, which is worth knowing inside loops.

pixelate()

public function pixelate( int $amount ): AdapterInterface;

Pixelate image

reflection()

public function reflection(
    int $height,
    int $opacity = 100,
    bool $fadeIn = false
): AdapterInterface;

Add a reflection to an image

render()

public function render(
    string $extension = null,
    int $quality = 100
): string;

Render the image and return the binary string

resize()

public function resize(
    int $width = null,
    int $height = null,
    int $master = Enum::AUTO
): AdapterInterface;

Resize the image to the given size

rotate()

public function rotate( int $degrees ): AdapterInterface;

Rotate the image by a given amount

save()

public function save(
    string $file = null,
    int $quality = -1
): AdapterInterface;

Save the image

sharpen()

public function sharpen( int $amount ): AdapterInterface;

Sharpen the image by a given amount

text()

public function text(
    string $text,
    mixed $offsetX = false,
    mixed $offsetY = false,
    int $opacity = 100,
    string $color = "000000",
    int $size = 12,
    string $fontFile = null
): AdapterInterface;

Add a text to an image with a specified opacity

watermark()

public function watermark(
    AdapterInterface $watermark,
    int $offsetX = 0,
    int $offsetY = 0,
    int $opacity = 100
): AdapterInterface;

Add a watermark to an image with the specified opacity

The watermark is read through its public render() output rather than its internal handle, so a watermark created with a different backend composites correctly. The cost is one encode/decode round trip per call, which is worth knowing inside loops.

Protected · 15

checkHighLow()

protected function checkHighLow(
    int $value,
    int $min = 0,
    int $max = 100
): int;

processBackground()

abstract protected function processBackground(
    int $red,
    int $green,
    int $blue,
    int $opacity
): void;

Renders the supplied colour onto the image as the background. Channels are 0-255; the opacity is the validated 0-100 value.

processBlur()

abstract protected function processBlur( int $radius ): void;

Applies a blur. The radius is already clamped to 1-100.

processCrop()

abstract protected function processCrop(
    int $width,
    int $height,
    int $offsetX,
    int $offsetY
): void;

Crops the image. Width, height and both offsets are already normalized to fit within the current canvas.

processFlip()

abstract protected function processFlip( int $direction ): void;

Flips the image. The direction is already normalized to Enum::HORIZONTAL or Enum::VERTICAL.

processMask()

abstract protected function processMask( AdapterInterface $mask );

Composites the supplied image as a mask onto this one. The mask is read through its public render() output, so it may be any adapter backend.

processPixelate()

abstract protected function processPixelate( int $amount ): void;

Pixelates the image. The amount is already at least 2.

processReflection()

abstract protected function processReflection(
    int $height,
    int $opacity,
    bool $fadeIn
): void;

Adds a reflection. The height is clamped to the image height and the opacity to 0-100.

processRender()

abstract protected function processRender(
    string $extension,
    int $quality
);

Renders the image to a binary string. The extension is non-empty and the quality is already clamped to 1-100. Returns the encoded bytes.

processResize()

abstract protected function processResize(
    int $width,
    int $height
): void;

Resizes the image. Width and height are already resolved to positive integers per the requested resize mode.

processRotate()

abstract protected function processRotate( int $degrees ): void;

Rotates the image. The degrees value is already normalized to -180..180.

processSave()

abstract protected function processSave(
    string $file,
    int $quality
);

Saves the image to the supplied file path.

processSharpen()

abstract protected function processSharpen( int $amount ): void;

Sharpens the image. The amount is already clamped to 1-100.

processText()

abstract protected function processText(
    string $text,
    mixed $offsetX,
    mixed $offsetY,
    int $opacity,
    int $red,
    int $green,
    int $blue,
    int $size,
    string $fontFile = null
): void;

Renders text onto the image. The opacity is clamped to 0-100 and the colour is supplied as separate 0-255 channels.

processWatermark()

abstract protected function processWatermark(
    AdapterInterface $watermark,
    int $offsetX,
    int $offsetY,
    int $opacity
): void;

Composites the supplied watermark onto this image. Offsets and opacity are already clamped to the valid range; the watermark is read through its public render() output, so it may be any adapter backend.

Image\Adapter\AdapterInterface

InterfaceSource on GitHub

Interface for Phalcon\Image\Adapter classes

  • Phalcon\Image\Adapter\AdapterInterface

Uses Phalcon\Image\Enum

Method Summary

Methods

Public · 16

background()

public function background(
    string $color,
    int $opacity = 100
): AdapterInterface;

Add a background to an image

blur()

public function blur( int $radius ): AdapterInterface;

Blur an image

crop()

public function crop(
    int $width,
    int $height,
    int $offsetX = null,
    int $offsetY = null
): AdapterInterface;

Crop an image

flip()

public function flip( int $direction ): AdapterInterface;

Flip an image

getHeight()

public function getHeight(): int;

getWidth()

public function getWidth(): int;

mask()

public function mask( AdapterInterface $mask ): AdapterInterface;

Add a mask to an image

pixelate()

public function pixelate( int $amount ): AdapterInterface;

Pixelate an image

reflection()

public function reflection(
    int $height,
    int $opacity = 100,
    bool $fadeIn = false
): AdapterInterface;

Reflect an image

render()

public function render(
    string $extension = null,
    int $quality = 100
): string;

Render an image

resize()

public function resize(
    int $width = null,
    int $height = null,
    int $master = Enum::AUTO
): AdapterInterface;

Resize an image

rotate()

public function rotate( int $degrees ): AdapterInterface;

Rotate an image

save()

public function save(
    string $file = null,
    int $quality = 100
): AdapterInterface;

Save an image

sharpen()

public function sharpen( int $amount ): AdapterInterface;

Sharpen an image

text()

public function text(
    string $text,
    int $offsetX = 0,
    int $offsetY = 0,
    int $opacity = 100,
    string $color = "000000",
    int $size = 12,
    string $fontFile = null
): AdapterInterface;

Adds text on an image

watermark()

public function watermark(
    AdapterInterface $watermark,
    int $offsetX = 0,
    int $offsetY = 0,
    int $opacity = 100
): AdapterInterface;

Add a watermark on an image

Image\Adapter\Gd

ClassSource on GitHub

Image manipulation backed by the GD extension.

Capabilities:

Aspect Support
Load formats GIF, JPEG, JPEG 2000, PNG, WEBP, WBMP, XBM
Render/save formats GIF, JPEG, PNG, WBMP, WEBP, XBM
Backend-only API none

Unsupported render/save formats raise Phalcon\Image\Exceptions\UnsupportedImageType. Visual semantics differ from the Imagick adapter: blur() applies repeated 3x3 Gaussian convolutions (the radius is the number of passes), while sharpen and reflection use GD’s own scales. Switching the factory backend can change the rendered output.

Uses Phalcon\Image\Enum · Phalcon\Image\Exception · Phalcon\Image\Exceptions\ExtensionNotLoaded · Phalcon\Image\Exceptions\ImageLoadFailed · Phalcon\Image\Exceptions\TextRenderingFailed · Phalcon\Image\Exceptions\UnsupportedImageType · Phalcon\Image\Exceptions\VersionMismatch · Phalcon\Traits\Php\FileTrait · Phalcon\Traits\Php\InfoTrait

Method Summary

Methods

Public · 4

__construct()

public function __construct(
    string $file,
    int $width = null,
    int $height = null
);

Loads an image from a file, or creates a blank canvas.

When the file exists it is loaded. When the file does not exist and both a width and a height are supplied, a blank true-color canvas is created instead - its realpath, mime and type then describe a PNG canvas rather than the named file. Prefer Gd::create() for the canvas case; this dual mode is slated for removal in the next major version.

__destruct()

public function __destruct();

Destructor

create()

public static function create(
    int $width,
    int $height
): AbstractAdapter;

Creates a blank true-color canvas of the given dimensions, without the load-or-create ambiguity of the constructor.

getVersion()

public function getVersion(): string;
Protected · 15

processBackground()

protected function processBackground(
    int $red,
    int $green,
    int $blue,
    int $opacity
): void;

processBlur()

protected function processBlur( int $radius ): void;

processCreate()

protected function processCreate(
    int $width,
    int $height
);

processCrop()

protected function processCrop(
    int $width,
    int $height,
    int $offsetX,
    int $offsetY
): void;

processFlip()

protected function processFlip( int $direction ): void;

processMask()

protected function processMask( AdapterInterface $mask );

processPixelate()

protected function processPixelate( int $amount ): void;

processReflection()

protected function processReflection(
    int $height,
    int $opacity,
    bool $fadeIn
): void;

processRender()

protected function processRender(
    string $extension,
    int $quality
);

processResize()

protected function processResize(
    int $width,
    int $height
): void;

processRotate()

protected function processRotate( int $degrees ): void;

processSave()

protected function processSave(
    string $file,
    int $quality
): bool;

processSharpen()

protected function processSharpen( int $amount ): void;

processText()

protected function processText(
    string $text,
    mixed $offsetX,
    mixed $offsetY,
    int $opacity,
    int $red,
    int $green,
    int $blue,
    int $size,
    string $fontFile = null
): void;

processWatermark()

protected function processWatermark(
    AdapterInterface $watermark,
    int $offsetX,
    int $offsetY,
    int $opacity
): void;

Image\Adapter\Imagick

ClassSource on GitHub

Phalcon\Image\Adapter\Imagick

Image manipulation support. Resize, rotate, crop etc.

$image = new \Phalcon\Image\Adapter\Imagick("upload/test.jpg");

$image->resize(200, 200)->rotate(90)->crop(100, 100);

if ($image->save()) {
    echo "success";
}

Capabilities:

Aspect Support
Load formats Whatever the linked ImageMagick build supports
Render/save formats Whatever the linked ImageMagick build supports
Backend-only API liquidRescale(), setResourceLimit()

Visual semantics differ from the Gd adapter: blur() maps the radius to a blur sigma, while sharpen and reflection use ImageMagick’s own scales. Switching the factory backend can change the rendered output.

Uses Imagick · ImagickDraw · ImagickDrawException · ImagickException · ImagickPixel · ImagickPixelException · Phalcon\Image\Enum · Phalcon\Image\Exception · Phalcon\Image\Exceptions\CompositeFailed · Phalcon\Image\Exceptions\ExtensionNotLoaded · Phalcon\Image\Exceptions\ImageLoadFailed · Phalcon\Image\Exceptions\ResizeFailed · Phalcon\Image\Exceptions\ResourceTypeError · Phalcon\Traits\Php\FileTrait

Method Summary

public__construct(string$file,int$width = null,int$height = null)Loads an image from a file, or creates a blank canvas.public__destruct()Destroys the loaded image to free up resources.publicAbstractAdaptercreate(int$width,int$height)Creates a blank transparent canvas of the given dimensions, without thepublicAbstractAdapterliquidRescale(int$width,int$height,int$deltaX = 0,int$rigidity = 0)This method scales the images using liquid rescaling method. Only supportpublicvoidsetResourceLimit(int$type,int$limit)Sets the limit for a particular resource in megabytesprotectedvoidprocessBackground(int$red,int$green,int$blue,int$opacity)Execute a background.protectedvoidprocessBlur( int$radius )Blur imageprotectedvoidprocessCrop(int$width,int$height,int$offsetX,int$offsetY)Execute a crop.protectedvoidprocessFlip( int$direction )Execute a flip.protectedvoidprocessMask( AdapterInterface$mask )Composite one image onto anotherprotectedvoidprocessPixelate( int$amount )Pixelate imageprotectedvoidprocessReflection(int$height,int$opacity,bool$fadeIn)Execute a reflection.protectedstringprocessRender(string$extension,int$quality)Execute a render.protectedvoidprocessResize(int$width,int$height)Execute a resize.protectedvoidprocessRotate( int$degrees )Execute a rotation.protectedvoidprocessSave(string$file,int$quality)Execute a save.protectedvoidprocessSharpen( int$amount )Execute a sharpen.protectedvoidprocessText(string$text,mixed$offsetX,mixed$offsetY,int$opacity,int$red,int$green,int$blue,int$size,string$fontFile = null)Execute a textprotectedvoidprocessWatermark(AdapterInterface$watermark,int$offsetX,int$offsetY,int$opacity)Add Watermark

Properties

protectedint$version = 0

Methods

Public · 5

__construct()

public function __construct(
    string $file,
    int $width = null,
    int $height = null
);

Loads an image from a file, or creates a blank canvas.

When the file exists it is loaded. When the file does not exist and both a width and a height are supplied, a blank transparent canvas is created instead - its realpath, mime and type then describe a PNG canvas rather than the named file. Prefer Imagick::create() for the canvas case; this dual mode is slated for removal in the next major version.

__destruct()

public function __destruct();

Destroys the loaded image to free up resources.

create()

public static function create(
    int $width,
    int $height
): AbstractAdapter;

Creates a blank transparent canvas of the given dimensions, without the load-or-create ambiguity of the constructor.

liquidRescale()

public function liquidRescale(
    int $width,
    int $height,
    int $deltaX = 0,
    int $rigidity = 0
): AbstractAdapter;

This method scales the images using liquid rescaling method. Only support Imagick

setResourceLimit()

public function setResourceLimit(
    int $type,
    int $limit
): void;

Sets the limit for a particular resource in megabytes

@link https://www.php.net/manual/en/imagick.constants.php#imagick.constants.resourcetypes

Protected · 14

processBackground()

protected function processBackground(
    int $red,
    int $green,
    int $blue,
    int $opacity
): void;

Execute a background.

processBlur()

protected function processBlur( int $radius ): void;

Blur image

processCrop()

protected function processCrop(
    int $width,
    int $height,
    int $offsetX,
    int $offsetY
): void;

Execute a crop.

processFlip()

protected function processFlip( int $direction ): void;

Execute a flip.

processMask()

protected function processMask( AdapterInterface $mask ): void;

Composite one image onto another

processPixelate()

protected function processPixelate( int $amount ): void;

Pixelate image

processReflection()

protected function processReflection(
    int $height,
    int $opacity,
    bool $fadeIn
): void;

Execute a reflection.

processRender()

protected function processRender(
    string $extension,
    int $quality
): string;

Execute a render.

processResize()

protected function processResize(
    int $width,
    int $height
): void;

Execute a resize.

processRotate()

protected function processRotate( int $degrees ): void;

Execute a rotation.

processSave()

protected function processSave(
    string $file,
    int $quality
): void;

Execute a save.

processSharpen()

protected function processSharpen( int $amount ): void;

Execute a sharpen.

processText()

protected function processText(
    string $text,
    mixed $offsetX,
    mixed $offsetY,
    int $opacity,
    int $red,
    int $green,
    int $blue,
    int $size,
    string $fontFile = null
): void;

Execute a text

processWatermark()

protected function processWatermark(
    AdapterInterface $watermark,
    int $offsetX,
    int $offsetY,
    int $opacity
): void;

Add Watermark

Image\Enum

ClassSource on GitHub
  • Phalcon\Image\Enum

Constants

intAUTO = 4
intHEIGHT = 3
intHORIZONTAL = 11
intINVERSE = 5
intNONE = 1
intPRECISE = 6
intTENSILE = 7
intVERTICAL = 12
intWIDTH = 2

Image\Exception

ClassSource on GitHub

Exceptions thrown in Phalcon\Image will use this class

Image\Exceptions\CompositeFailed

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\ExtensionNotLoaded

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $extension );

Image\Exceptions\ImageLoadFailed

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $file );

Image\Exceptions\InvalidColor

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $color );

Image\Exceptions\MissingDimensions

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\MissingHeight

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\MissingWidth

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\ResizeFailed

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\ResourceTypeError

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\TextRenderingFailed

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\UnsupportedImageType

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $format = "" );

Image\Exceptions\VersionMismatch

ClassSource on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $version );

Image\ImageFactory

ClassSource on GitHub

Factory to create adapters for image manipulation

Uses Phalcon\Config\ConfigInterface · Phalcon\Factory\AbstractFactory · Phalcon\Image\Adapter\AdapterInterface · Phalcon\Traits\Support\Helper\Arr\GetTrait

Method Summary

Methods

Public · 3

__construct()

public function __construct( array $services = [] );

Constructor

load()

public function load( mixed $config ): AdapterInterface;

Factory to create an instance from a Config object

newInstance()

public function newInstance(
    string $name,
    string $file,
    int $width = null,
    int $height = null
): AdapterInterface;

Creates a new instance

Protected · 2

getExceptionClass()

protected function getExceptionClass(): string;

getServices()

protected function getServices(): array;

Returns the available adapters

Type to search…

↑↓ navigate↵ selectEsc close