PATH:
home
/
lab2454c
/
crypto.keyreum.com
/
vendor
/
intervention
/
image
/
src
/
Intervention
/
Image
/
Imagick
/
Commands
<?php namespace Intervention\Image\Imagick\Commands; use Intervention\Image\Commands\AbstractCommand; class MaskCommand extends AbstractCommand { /** * Applies an alpha mask to an image * * @param \Intervention\Image\Image $image * @return boolean */ public function execute($image) { $mask_source = $this->argument(0)->value(); $mask_w_alpha = $this->argument(1)->type('bool')->value(false); // get imagick $imagick = $image->getCore(); // build mask image from source $mask = $image->getDriver()->init($mask_source); // resize mask to size of current image (if necessary) $image_size = $image->getSize(); if ($mask->getSize() != $image_size) { $mask->resize($image_size->width, $image_size->height); } $imagick->setImageMatte(true); if ($mask_w_alpha) { // just mask with alpha map $imagick->compositeImage($mask->getCore(), \Imagick::COMPOSITE_DSTIN, 0, 0); } else { // get alpha channel of original as greyscale image $original_alpha = clone $imagick; $original_alpha->separateImageChannel(\Imagick::CHANNEL_ALPHA); // use red channel from mask ask alpha $mask_alpha = clone $mask->getCore(); $mask_alpha->compositeImage($mask->getCore(), \Imagick::COMPOSITE_DEFAULT, 0, 0); // $mask_alpha->setImageAlphaChannel(\Imagick::ALPHACHANNEL_DEACTIVATE); $mask_alpha->separateImageChannel(\Imagick::CHANNEL_ALL); // combine both alphas from original and mask $original_alpha->compositeImage($mask_alpha, \Imagick::COMPOSITE_COPYOPACITY, 0, 0); // mask the image with the alpha combination $imagick->compositeImage($original_alpha, \Imagick::COMPOSITE_DSTIN, 0, 0); } return true; } }
[-] InsertCommand.php
[edit]
[-] HeightenCommand.php
[edit]
[-] BlurCommand.php
[edit]
[-] LimitColorsCommand.php
[edit]
[-] ResetCommand.php
[edit]
[-] SharpenCommand.php
[edit]
[-] TrimCommand.php
[edit]
[+]
..
[-] ColorizeCommand.php
[edit]
[-] PixelateCommand.php
[edit]
[-] GammaCommand.php
[edit]
[-] FitCommand.php
[edit]
[-] BrightnessCommand.php
[edit]
[-] InterlaceCommand.php
[edit]
[-] ContrastCommand.php
[edit]
[-] OpacityCommand.php
[edit]
[-] WidenCommand.php
[edit]
[-] InvertCommand.php
[edit]
[-] DestroyCommand.php
[edit]
[-] ResizeCommand.php
[edit]
[-] MaskCommand.php
[edit]
[-] CropCommand.php
[edit]
[-] GetSizeCommand.php
[edit]
[-] GreyscaleCommand.php
[edit]
[-] BackupCommand.php
[edit]
[-] ResizeCanvasCommand.php
[edit]
[-] ExifCommand.php
[edit]
[-] FillCommand.php
[edit]
[-] FlipCommand.php
[edit]
[-] RotateCommand.php
[edit]
[-] PickColorCommand.php
[edit]
[-] PixelCommand.php
[edit]