<?php namespace Intervention\Image\Gd\Commands; use Intervention\Image\Commands\AbstractCommand; class SharpenCommand extends AbstractCommand { /** * Sharpen image * * @param \Intervention\Image\Image $image * @return boolean */ public function execute($image) { $amount = $this->argument(0)->between(0, 100)->value(10); // build matrix $min = $amount >= 10 ? $amount * -0.01 : 0; $max = $amount * -0.025; $abs = ((4 * $min + 4 * $max) * -1) + 1; $div = 1; $matrix = [ [$min, $max, $min], [$max, $abs, $max], [$min, $max, $min] ]; // apply the matrix return imageconvolution($image->getCore(), $matrix, $div, 0); } }