Вход Регистрация
Файл: vendor/intervention/image/src/Drivers/Gd/Modifiers/SharpenModifier.php
Строк: 52
<?php

declare(strict_types=1);

namespace 
InterventionImageDriversGdModifiers;

use 
InterventionImageInterfacesImageInterface;
use 
InterventionImageInterfacesSpecializedInterface;
use 
InterventionImageModifiersSharpenModifier as GenericSharpenModifier;

class 
SharpenModifier extends GenericSharpenModifier implements SpecializedInterface
{
    
/**
     * {@inheritdoc}
     *
     * @see ModifierInterface::apply()
     */
    
public function apply(ImageInterface $image): ImageInterface
    
{
        
$matrix = $this->matrix();
        foreach (
$image as $frame) {
            
imageconvolution($frame->native(), $matrix, 1, 0);
        }

        return 
$image;
    }

    
/**
     * Create matrix to be used by imageconvolution()
     *
     * @return array<array<float>>
     */
    
private function matrix(): array
    {
        
$min = $this->amount >= 10 ? $this->amount * -0.01 : 0;
        
$max = $this->amount * -0.025;
        
$abs = ((4 * $min + 4 * $max) * -1) + 1;

        return [
            [
$min, $max, $min],
            [
$max, $abs, $max],
            [
$min, $max, $min]
        ];
    }
}
Онлайн: 2
Реклама