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

declare(strict_types=1);

namespace 
InterventionImageTypography;

use 
InterventionImageExceptionsFontException;
use 
InterventionImageInterfacesFontInterface;

class 
Font implements FontInterface
{
    protected 
float $size 12;
    protected 
float $angle 0;
    protected 
mixed $color '000000';
    protected 
mixed $strokeColor 'ffffff';
    protected 
int $strokeWidth 0;
    protected ?
string $filename null;
    protected 
string $alignment 'left';
    protected 
string $valignment 'bottom';
    protected 
float $lineHeight 1.25;
    protected ?
int $wrapWidth null;

    public function 
__construct(?string $filename null)
    {
        
$this->filename $filename;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setSize()
     */
    
public function setSize(float $size): FontInterface
    
{
        
$this->size $size;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::size()
     */
    
public function size(): float
    
{
        return 
$this->size;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setAngle()
     */
    
public function setAngle(float $angle): FontInterface
    
{
        
$this->angle $angle;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::angle()
     */
    
public function angle(): float
    
{
        return 
$this->angle;
    }

    
/**
     * {@inheritdoc}
     *
     * @throws FontException
     * @see FontInterface::setFilename()
     */
    
public function setFilename(string $filename): FontInterface
    
{
        if (!
file_exists($filename)) {
            throw new 
FontException('Font file ' $filename ' does not exist.');
        }

        
$this->filename $filename;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::filename()
     */
    
public function filename(): ?string
    
{
        return 
$this->filename;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::hasFilename()
     */
    
public function hasFilename(): bool
    
{
        return !
is_null($this->filename) && is_file($this->filename);
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setColor()
     */
    
public function setColor(mixed $color): FontInterface
    
{
        
$this->color $color;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::color()
     */
    
public function color(): mixed
    
{
        return 
$this->color;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setStrokeColor()
     */
    
public function setStrokeColor(mixed $color): FontInterface
    
{
        
$this->strokeColor $color;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::strokeColor()
     */
    
public function strokeColor(): mixed
    
{
        return 
$this->strokeColor;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setStrokeWidth()
     */
    
public function setStrokeWidth(int $width): FontInterface
    
{
        if (!
in_array($widthrange(010))) {
            throw new 
FontException(
                
'The stroke width must be in the range from 0 to 10.'
            
);
        }

        
$this->strokeWidth $width;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::strokeWidth()
     */
    
public function strokeWidth(): int
    
{
        return 
$this->strokeWidth;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::hasStrokeEffect()
     */
    
public function hasStrokeEffect(): bool
    
{
        return 
$this->strokeWidth 0;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::alignment()
     */
    
public function alignment(): string
    
{
        return 
$this->alignment;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setAlignment()
     */
    
public function setAlignment(string $value): FontInterface
    
{
        
$this->alignment $value;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::valignment()
     */
    
public function valignment(): string
    
{
        return 
$this->valignment;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setValignment()
     */
    
public function setValignment(string $value): FontInterface
    
{
        
$this->valignment $value;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setLineHeight()
     */
    
public function setLineHeight(float $height): FontInterface
    
{
        
$this->lineHeight $height;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::lineHeight()
     */
    
public function lineHeight(): float
    
{
        return 
$this->lineHeight;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::setWrapWidth()
     */
    
public function setWrapWidth(?int $width): FontInterface
    
{
        
$this->wrapWidth $width;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see FontInterface::wrapWidth()
     */
    
public function wrapWidth(): ?int
    
{
        return 
$this->wrapWidth;
    }
}
Онлайн: 0
Реклама