Skip to content

Phalcon image

NOTE

All classes are prefixed with Phalcon

Image\Adapter\AbstractAdapter

Abstract Source 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

public AdapterInterface background(string $color,int $opacity = 100) Set the background color of an image public AdapterInterface blur( int $radius ) Blur image public AdapterInterface crop(int $width,int $height,mixed $offsetX = null,mixed $offsetY = null) Crop an image to the given size public AdapterInterface flip( int $direction ) Flip the image along the horizontal or vertical axis public int getHeight() public getImage() public string getMime() public string getRealpath() public int getType() public int getWidth() public AdapterInterface mask( AdapterInterface $mask ) Composite one image onto another public AdapterInterface pixelate( int $amount ) Pixelate image public AdapterInterface reflection(int $height,int $opacity = 100,bool $fadeIn = false) Add a reflection to an image public string render(string $extension = null,int $quality = 100) Render the image and return the binary string public AdapterInterface resize(int $width = null,int $height = null,int $master = Enum::AUTO) Resize the image to the given size public AdapterInterface rotate( int $degrees ) Rotate the image by a given amount public AdapterInterface save(string $file = null,int $quality = -1) Save the image public AdapterInterface sharpen( int $amount ) Sharpen the image by a given amount public AdapterInterface text(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 opacity public AdapterInterface watermark(AdapterInterface $watermark,int $offsetX = 0,int $offsetY = 0,int $opacity = 100) Add a watermark to an image with the specified opacity protected int checkHighLow(int $value,int $min = 0,int $max = 100) protected void processBackground(int $red,int $green,int $blue,int $opacity) Renders the supplied colour onto the image as the background. Channels protected void processBlur( int $radius ) Applies a blur. The radius is already clamped to 1-100. protected void processCrop(int $width,int $height,int $offsetX,int $offsetY) Crops the image. Width, height and both offsets are already normalized protected void processFlip( int $direction ) Flips the image. The direction is already normalized to protected processMask( AdapterInterface $mask ) Composites the supplied image as a mask onto this one. The mask is read protected void processPixelate( int $amount ) Pixelates the image. The amount is already at least 2. protected void processReflection(int $height,int $opacity,bool $fadeIn) Adds a reflection. The height is clamped to the image height and the protected processRender(string $extension,int $quality) Renders the image to a binary string. The extension is non-empty and the protected void processResize(int $width,int $height) Resizes the image. Width and height are already resolved to positive protected void processRotate( int $degrees ) Rotates the image. The degrees value is already normalized to -180..180. protected processSave(string $file,int $quality) Saves the image to the supplied file path. protected void processSharpen( int $amount ) Sharpens the image. The amount is already clamped to 1-100. protected void processText(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 the protected void processWatermark(AdapterInterface $watermark,int $offsetX,int $offsetY,int $opacity) Composites the supplied watermark onto this image. Offsets and opacity

Properties

protected string $file
protected int $height Image height
protected mixed|null $image = null
protected string $mime Image mime type
protected string $realpath
protected int $type Image type Driver dependent
protected int $width Image 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

Interface Source 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

Class Source 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

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

Class Source 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

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. public AbstractAdapter create(int $width,int $height) Creates a blank transparent canvas of the given dimensions, without the public AbstractAdapter liquidRescale(int $width,int $height,int $deltaX = 0,int $rigidity = 0) This method scales the images using liquid rescaling method. Only support public void setResourceLimit(int $type,int $limit) Sets the limit for a particular resource in megabytes protected void processBackground(int $red,int $green,int $blue,int $opacity) Execute a background. protected void processBlur( int $radius ) Blur image protected void processCrop(int $width,int $height,int $offsetX,int $offsetY) Execute a crop. protected void processFlip( int $direction ) Execute a flip. protected void processMask( AdapterInterface $mask ) Composite one image onto another protected void processPixelate( int $amount ) Pixelate image protected void processReflection(int $height,int $opacity,bool $fadeIn) Execute a reflection. protected string processRender(string $extension,int $quality) Execute a render. protected void processResize(int $width,int $height) Execute a resize. protected void processRotate( int $degrees ) Execute a rotation. protected void processSave(string $file,int $quality) Execute a save. protected void processSharpen( int $amount ) Execute a sharpen. protected void processText(string $text,mixed $offsetX,mixed $offsetY,int $opacity,int $red,int $green,int $blue,int $size,string $fontFile = null) Execute a text protected void processWatermark(AdapterInterface $watermark,int $offsetX,int $offsetY,int $opacity) Add Watermark

Properties

protected int $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

Class Source on GitHub

  • Phalcon\Image\Enum

Constants

int AUTO = 4
int HEIGHT = 3
int HORIZONTAL = 11
int INVERSE = 5
int NONE = 1
int PRECISE = 6
int TENSILE = 7
int VERTICAL = 12
int WIDTH = 2

Image\Exception

Class Source on GitHub

Exceptions thrown in Phalcon\Image will use this class

Image\Exceptions\CompositeFailed

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\ExtensionNotLoaded

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $extension );

Image\Exceptions\ImageLoadFailed

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $file );

Image\Exceptions\InvalidColor

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $color );

Image\Exceptions\MissingDimensions

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\MissingHeight

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\MissingWidth

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\ResizeFailed

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\ResourceTypeError

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\TextRenderingFailed

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Image\Exceptions\UnsupportedImageType

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

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

Image\Exceptions\VersionMismatch

Class Source on GitHub

Uses Phalcon\Image\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $version );

Image\ImageFactory

Class Source on GitHub

Factory to create adapters for image manipulation

Uses Phalcon\Config\ConfigInterface · Phalcon\Factory\AbstractFactory · Phalcon\Image\Adapter\AdapterInterface

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