Rundiz\Image

Watermark extends AbstractImagickCommand
in package
uses CalculationTrait, ImageTrait, ImagickTrait

Watermark image and text.

Tags
since
3.1.0

Table of Contents

Properties

$ImagickD  : Imagick

Methods

__construct()  : mixed
applyImage()  : bool
Apply watermark image to source image.
applyText()  : bool
Apply watermark text to source image.
getImageFileData()  : array<string|int, mixed>|false
Get image file data such as width, height, mime type, extension.
calculateCounterClockwise()  : int
Calculate counter clockwise degree.
calculateStartXOfCenter()  : int
Calculate startX position of center.
calculateWatermarkImageStartXY()  : array<string|int, mixed>
Calculate watermark start X and Y from specified text position (left, right, bottom, top, middle, center).
convertAlpha127ToRgba()  : string
Convert alpha number (0 - 127) to rgba value (1.00 - 0.00).
fillWhiteToImage()  : mixed
Fill white to the image.
getFirstFrame()  : mixed
Get animated picture's first frame.
normalizeDegree()  : int|string
Normalize degree.
normalizeWidthHeight()  : array<string|int, mixed>
Convert width, height to integer and check if it is less than 0 then set to minimum value.
setErrorMessage()  : mixed
Set error message and code. This will be set statusXxx properties.
setStatusSuccess()  : mixed
Set status as success and remove error message, error code.
verifyQualityValue()  : mixed
Verify image save quality value.
applyWatermarkOpacity()  : mixed
Apply forced opacity to the watermark image while preserving its alpha channel.
createWatermarkTextObject()  : mixed
Create watermark text object.
getImageColorAlpha()  : mixed
Get image color with alpha value (transparency).
normalizeStartPosition()  : array<string|int, mixed>
Normalize start X and Y position.
normalizeWatermarkOptions()  : void
Normalize watermark options.
setupWatermarkImageObject()  : bool
Setup watermark image object.

Properties

Methods

applyImage()

Apply watermark image to source image.

public applyImage(string $wm_img_path[, int|string $wm_img_start_x = 0 ][, int|string $wm_img_start_y = 0 ][, array<string|int, mixed> $options = [] ]) : bool
Parameters
$wm_img_path : string

Full path of watermark image file

$wm_img_start_x : int|string = 0

Position to begin in x axis. The value is integer or 'left', 'center', 'right'.

$wm_img_start_y : int|string = 0

Position to begin in y axis. The value is integer or 'top', 'middle', 'bottom'.

$options : array<string|int, mixed> = []

The watermark options. (Since v3.1.3)
padding (int) Padding around watermark object. Use with left, right, bottom, top but not middle, center. See \Rundiz\Image\Traits\CalculationTrait::calculateWatermarkImageStartXY().
opacity (int) The image opacity value from 0 (full transparent) to 100 (no transparent).

Tags
see
ImageInterface::watermarkImage()

for more details.

Return values
bool

Return true on success, false on failure. Call to status_msg property to see the details on failure.

applyText()

Apply watermark text to source image.

public applyText(string $wm_txt_text, string $wm_txt_font_path[, int|string $wm_txt_start_x = 0 ][, int|string $wm_txt_start_y = 0 ][, int $wm_txt_font_size = 10 ][, string $wm_txt_font_color = 'white' ][, int $wm_txt_font_alpha = 60 ][, array<string|int, mixed> $options = [] ]) : bool
Parameters
$wm_txt_text : string

Watermark text

$wm_txt_font_path : string

'True Type Font' path

$wm_txt_start_x : int|string = 0

Position to begin in x axis. The value is integer or 'left', 'center', 'right'.

$wm_txt_start_y : int|string = 0

Position to begin in x axis. The value is integer or 'top', 'middle', 'bottom'.

$wm_txt_font_size : int = 10

Font size

$wm_txt_font_color : string = 'white'

Font color. ('black', 'white', 'red', 'green', 'blue', 'yellow', 'cyan', 'magenta')

$wm_txt_font_alpha : int = 60

Text transparency value. (0-127)

$options : array<string|int, mixed> = []

The watermark text options. (Since v.3.1.0)
fillBackground (bool) Set to true to fill background color for text bounding box. Default is false to use transparent.
backgroundColor (string) The background color to fill for text bounding box. Available values are 'black', 'white', 'red', 'green', 'blue', 'yellow', 'cyan', 'magenta', 'debug'.
padding (int) (Since v3.1.3) Padding around watermark text. Use with left, right, bottom, top but not middle, center.

Tags
see
ImageInterface::watermarkText()

for more details.

Return values
bool

Return true on success, false on failed. Call to status_msg property to see the details on failure.

getImageFileData()

Get image file data such as width, height, mime type, extension.

public getImageFileData(string $imagePath) : array<string|int, mixed>|false

This will be use getimagesize() function if supported, something else as backup.

Parameters
$imagePath : string

Full path to image file.

Tags
since
3.1.0
throws
DomainException

Throw the errors if it is an image but current PHP version is not supported.

Return values
array<string|int, mixed>|false

Return array:
index 0 Image width.
index 1 Image height.
index 2 Image type constant. See more at https://www.php.net/manual/en/image.constants.php
mime key is mime type.
ext key is file extension with dot (.ext).
Other array keys are optional, it can be omit.
Return false on failure.

calculateCounterClockwise()

Calculate counter clockwise degree.

protected calculateCounterClockwise(int $value) : int

Calculate input degree for use with Imagick.
In GD 90 degrees is 270 in Imagick. This function help to make it working together very well.

So it will be...
input = output
0 = 0
1 = 359
10 = 350
90 = 270
180 = 180
270 = 90
360 = 0

Parameters
$value : int

Input degrees.

Return values
int

Return opposite degrees for use with Imagick.

calculateStartXOfCenter()

Calculate startX position of center.

protected calculateStartXOfCenter(int $objWidth, int $canvasWidth) : int

With this method, you can calculate the start x position of center (horizontal) or middle (vertical).
The purpose of this method is for internal use, do not call this method from image's driver class directly due to it can be changed in the future.

Formular: round((half of canvas) - (half of object))

Parameters
$objWidth : int

Destination image object size.

$canvasWidth : int

Canvas size.

Return values
int

Calculated size.

calculateWatermarkImageStartXY()

Calculate watermark start X and Y from specified text position (left, right, bottom, top, middle, center).

protected calculateWatermarkImageStartXY(string $wmStartX, string $wmStartY, int $imgWidth, int $imgHeight, int $wmWidth, int $wmHeight[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>

The purpose of this method is for internal use, do not call this method from image's driver class directly due to it can be changed in the future.

Parameters
$wmStartX : string

Position to begin in x axis. The value is 'left', 'center', 'right'.

$wmStartY : string

Position to begin in y axis. The value is 'top', 'middle', 'bottom'.

$imgWidth : int

Latest image width. Get the dimension from latest modified image only.

$imgHeight : int

Latest image height. Get the dimension from latest modified image only.

$wmWidth : int

Latest watermark image width. Get the dimension from latest modified image only.

$wmHeight : int

Latest watermark image height. Get the dimension from latest modified image only.

$options : array<string|int, mixed> = []

The watermark options. This argument must be normalized before calling this method. Value is associative array.
padding (int) Padding around watermark object. Use with left, right, bottom, top but not middle, center.

Tags
throws
InvalidArgumentException

Throw exception if invalid argument type was specified.

Return values
array<string|int, mixed>

Return array with width as index 0, height as index 1.

convertAlpha127ToRgba()

Convert alpha number (0 - 127) to rgba value (1.00 - 0.00).

protected convertAlpha127ToRgba(int $number) : string

The purpose of this method is for internal use, do not call this method from image's driver class directly due to it can be changed in the future.

Parameters
$number : int

Alpha number (0 to 127). 127 is completely transparent.

Return values
string

Return RGBA value (1.00 to 0.00). 0.00 is completely transparent.

fillWhiteToImage()

Fill white to the image.

protected fillWhiteToImage() : mixed

getFirstFrame()

Get animated picture's first frame.

protected getFirstFrame() : mixed

normalizeDegree()

Normalize degree.

protected normalizeDegree(int|string $degree) : int|string

If degree is allowed string then it will be return as-is. If degree is number then it will be convert to integer.

Parameters
$degree : int|string

The degree.

Return values
int|string

Return converted degree.

normalizeWidthHeight()

Convert width, height to integer and check if it is less than 0 then set to minimum value.

protected normalizeWidthHeight(int $width, int $height[, int|false $minWidth = 100 ][, int|false $minHeight = 100 ]) : array<string|int, mixed>
Parameters
$width : int

Width

$height : int

Height

$minWidth : int|false = 100

Minimum that width must not less than 0. Set to false to not check it. Default is 100.

$minHeight : int|false = 100

Minimum that height must not less than 0. Set to false to not check it. Default is 100.

Return values
array<string|int, mixed>

Return 2D array where first index is width, second index is height.

setErrorMessage()

Set error message and code. This will be set statusXxx properties.

protected setErrorMessage(string $errorMessage, int $errorCode) : mixed
Parameters
$errorMessage : string

The error message.

$errorCode : int

The error code, usually it is class's constant.

Tags
since
3.1.4
see
AbstractImage::setErrorMessage()
throws
InvalidArgumentException

Throw the exception if argument type is invalid.

setStatusSuccess()

Set status as success and remove error message, error code.

protected setStatusSuccess() : mixed
Tags
since
3.1.4
see
AbstractImage::setStatusSuccess()

verifyQualityValue()

Verify image save quality value.

protected verifyQualityValue() : mixed
Tags
since
3.1.5

applyWatermarkOpacity()

Apply forced opacity to the watermark image while preserving its alpha channel.

private applyWatermarkOpacity(int $opacity) : mixed

The watermark's existing alpha values are multiplied by the opacity factor, so semi-transparent pixels stay proportionally semi-transparent instead of being flattened. An opacity of 100 leaves the watermark untouched and an opacity of 0 makes it fully transparent (the composite then has no effect).

Parameters
$opacity : int

The opacity value from 0 (full transparent) to 100 (no transparent).

Tags
since
3.2.0

createWatermarkTextObject()

Create watermark text object.

private createWatermarkTextObject(ImagickDraw $ImagickDraw, int $wm_txt_start_x, int $wm_txt_start_y, int $wm_txt_width, int $wm_txt_height, string $wm_txt_font_color, int $wm_txt_font_alpha[, array<string|int, mixed> $options = [] ]) : mixed
Parameters
$ImagickDraw : ImagickDraw
$wm_txt_start_x : int
$wm_txt_start_y : int
$wm_txt_width : int
$wm_txt_height : int
$wm_txt_font_color : string
$wm_txt_font_alpha : int
$options : array<string|int, mixed> = []
Tags
see
ImageInterface::watermarkText()

for more details.

since
3.1.4

getImageColorAlpha()

Get image color with alpha value (transparency).

private getImageColorAlpha(string $colorName, int $alpha) : mixed
Parameters
$colorName : string

The color name. Supported 'black', 'white', 'red', 'green', 'blue', 'yellow', 'cyan', 'magenta'.

$alpha : int

The alpha value for use with \ImagickPixel('rgba()'). The value should be 0.0 to 1.0.

Tags
since
3.2.0
throws
InvalidArgumentException

Throw exception if provide argument type mismatch.

normalizeStartPosition()

Normalize start X and Y position.

private normalizeStartPosition(int|string $wm_img_start_x, int|string $wm_img_start_y[, int|null $watermark_width = null ][, int|null $watermark_height = null ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>
Parameters
$wm_img_start_x : int|string
$wm_img_start_y : int|string
$watermark_width : int|null = null

Watermark width. Set to null to automatically get it from image object.

$watermark_height : int|null = null

Watermark height. Set to null to automatically get it from image object.

$options : array<string|int, mixed> = []
Tags
since
3.1.4
Return values
array<string|int, mixed>

Return indexed array where first array is start X, second is start Y.

normalizeWatermarkOptions()

Normalize watermark options.

private normalizeWatermarkOptions(array<string|int, mixed> &$options) : void
Parameters
$options : array<string|int, mixed>

The watermark options to be altered.

Tags
since
3.2.0
see
ImageInterface::watermarkImage()

For reference for options argument.

see
ImageInterface::watermarkText()

For reference for options argument.

setupWatermarkImageObject()

Setup watermark image object.

private setupWatermarkImageObject(string $wm_img_path) : bool

After calling this the ImagickWatermark will get new ImageMagick object if it does not set before.

Parameters
$wm_img_path : string

Path to watermark image.

Return values
bool

Return true on success, false on failed. Call to status_msg property to see the details on failure.


        
On this page

Search results