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

declare(strict_types=1);

namespace 
InterventionImage;

use 
InterventionImageInterfacesResolutionInterface;
use 
Stringable;

class 
Resolution implements ResolutionInterfaceStringable
{
    public const 
PER_INCH 1;
    public const 
PER_CM 2;

    
/**
     * Create new instance
     *
     * @param float $x
     * @param float $y
     * @param int $per_unit
     */
    
public function __construct(
        protected 
float $x,
        protected 
float $y,
        protected 
int $per_unit self::PER_INCH
    
) {
    }

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

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::setX()
     */
    
public function setX(float $x): self
    
{
        
$this->$x;

        return 
$this;
    }

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

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::setY()
     */
    
public function setY(float $y): self
    
{
        
$this->$y;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::setPerUnit()
     */
    
protected function setPerUnit(int $per_unit): self
    
{
        
$this->per_unit $per_unit;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::unit()
     */
    
public function unit(): string
    
{
        return 
match ($this->per_unit) {
            
self::PER_CM => 'dpcm',
            default => 
'dpi',
        };
    }

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::perInch()
     */
    
public function perInch(): self
    
{
        return 
match ($this->per_unit) {
            
self::PER_CM => $this
                
->setPerUnit(self::PER_INCH)
                ->
setX($this->2.54)
                ->
setY($this->2.54),
            default => 
$this
        
};
    }

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::perCm()
     */
    
public function perCm(): self
    
{
        return 
match ($this->per_unit) {
            
self::PER_INCH => $this
                
->setPerUnit(self::PER_CM)
                ->
setX($this->2.54)
                ->
setY($this->2.54),
            default => 
$this,
        };
    }

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::toString()
     */
    
public function toString(): string
    
{
        return 
sprintf("%1$.2f x %2$.2f %3$s"$this->x$this->y$this->unit());
    }

    
/**
     * {@inheritdoc}
     *
     * @see ResolutionInterface::__toString()
     */
    
public function __toString(): string
    
{
        return 
$this->toString();
    }
}
Онлайн: 0
Реклама