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

declare(strict_types=1);

namespace 
InterventionImageTypography;

use 
Closure;
use 
InterventionImageExceptionsFontException;
use 
InterventionImageInterfacesFontInterface;

class 
FontFactory
{
    protected 
FontInterface $font;

    
/**
     * Create new instance
     *
     * @param Closure|FontInterface $init
     * @throws FontException
     * @return void
     */
    
public function __construct(callable|Closure|FontInterface $init)
    {
        
$this->font is_a($initFontInterface::class) ? $init : new Font();

        if (
is_callable($init)) {
            
$init($this);
        }
    }

    
/**
     * Build font
     *
     * @return FontInterface
     */
    
public function __invoke(): FontInterface
    
{
        return 
$this->font;
    }

    
/**
     * Set the filename of the font to be built
     *
     * @param string $value
     * @return FontFactory
     */
    
public function filename(string $value): self
    
{
        
$this->font->setFilename($value);

        return 
$this;
    }

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

    
/**
     * Set outline stroke effect for the font to be built
     *
     * @param mixed $color
     * @param int $width
     * @throws FontException
     * @return FontFactory
     */
    
public function stroke(mixed $colorint $width 1): self
    
{
        
$this->font->setStrokeWidth($width);
        
$this->font->setStrokeColor($color);

        return 
$this;
    }

    
/**
     * Set color for the font to be built
     *
     * @param mixed $value
     * @return FontFactory
     */
    
public function color(mixed $value): self
    
{
        
$this->font->setColor($value);

        return 
$this;
    }

    
/**
     * Set the size for the font to be built
     *
     * @param float $value
     * @return FontFactory
     */
    
public function size(float $value): self
    
{
        
$this->font->setSize($value);

        return 
$this;
    }

    
/**
     * Set the horizontal alignment of the font to be built
     *
     * @param string $value
     * @return FontFactory
     */
    
public function align(string $value): self
    
{
        
$this->font->setAlignment($value);

        return 
$this;
    }

    
/**
     * Set the vertical alignment of the font to be built
     *
     * @param string $value
     * @return FontFactory
     */
    
public function valign(string $value): self
    
{
        
$this->font->setValignment($value);

        return 
$this;
    }

    
/**
     * Set the line height of the font to be built
     *
     * @param float $value
     * @return FontFactory
     */
    
public function lineHeight(float $value): self
    
{
        
$this->font->setLineHeight($value);

        return 
$this;
    }

    
/**
     * Set the rotation angle of the font to be built
     *
     * @param float $value
     * @return FontFactory
     */
    
public function angle(float $value): self
    
{
        
$this->font->setAngle($value);

        return 
$this;
    }

    
/**
     * Set the maximum width of the text block to be built
     *
     * @param int $width
     * @return FontFactory
     */
    
public function wrap(int $width): self
    
{
        
$this->font->setWrapWidth($width);

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