/
home
/
sjslayjy
/
public_html
/
scm
/
vendor
/
intervention
/
image
/
src
/
Intervention
/
Image
/
Imagick
/
Commands
/
Upload File
HOME
<?php namespace Intervention\Image\Imagick\Commands; use Intervention\Image\Commands\AbstractCommand; class ColorizeCommand extends AbstractCommand { /** * Changes balance of different RGB color channels * * @param \Intervention\Image\Image $image * @return boolean */ public function execute($image) { $red = $this->argument(0)->between(-100, 100)->required()->value(); $green = $this->argument(1)->between(-100, 100)->required()->value(); $blue = $this->argument(2)->between(-100, 100)->required()->value(); // normalize colorize levels $red = $this->normalizeLevel($red); $green = $this->normalizeLevel($green); $blue = $this->normalizeLevel($blue); $qrange = $image->getCore()->getQuantumRange(); // apply $image->getCore()->levelImage(0, $red, $qrange['quantumRangeLong'], \Imagick::CHANNEL_RED); $image->getCore()->levelImage(0, $green, $qrange['quantumRangeLong'], \Imagick::CHANNEL_GREEN); $image->getCore()->levelImage(0, $blue, $qrange['quantumRangeLong'], \Imagick::CHANNEL_BLUE); return true; } private function normalizeLevel($level) { if ($level > 0) { return $level/5; } else { return ($level+100)/100; } } }