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

declare(strict_types=1);

namespace 
InterventionImageModifiers;

use 
InterventionImageColorsRgbChannelsBlue;
use 
InterventionImageColorsRgbChannelsGreen;
use 
InterventionImageColorsRgbChannelsRed;
use 
InterventionImageColorsRgbColor;
use 
InterventionImageDriversSpecializableModifier;
use 
InterventionImageExceptionsColorException;
use 
InterventionImageExceptionsRuntimeException;
use 
InterventionImageInterfacesColorInterface;
use 
InterventionImageInterfacesDriverInterface;

class 
BlendTransparencyModifier extends SpecializableModifier
{
    
/**
     * Create new modifier object
     *
     * @param mixed $color
     * @return void
     */
    
public function __construct(public mixed $color null)
    {
        
//
    
}

    
/**
     * Decode blending color of current modifier with given driver. Possible
     * (semi-)transparent alpha channel values are made opaque.
     *
     * @throws RuntimeException
     * @throws ColorException
     * @return ColorInterface
     */
    
protected function blendingColor(DriverInterface $driver): ColorInterface
    
{
        
// decode blending color
        
$color $driver->handleInput(
            
$this->color ?: $driver->config()->blendingColor
        
);

        
// replace alpha channel value with opaque value
        
if ($color->isTransparent()) {
            return new 
Color(
                
$color->channel(Red::class)->value(),
                
$color->channel(Green::class)->value(),
                
$color->channel(Blue::class)->value(),
            );
        }

        return 
$color;
    }
}
Онлайн: 0
Реклама