EncodingOptions   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 64
rs 10
c 0
b 0
f 0
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A setQuality() 0 4 1
A setCompression() 0 4 1
A getQuality() 0 3 1
A defaults() 0 6 2
A getCompression() 0 3 1
1
<?php
2
3
namespace AmaTeam\Image\Projection\Image;
4
5
class EncodingOptions
6
{
7
    const DEFAULT_COMPRESSION = 1.0;
8
    const DEFAULT_QUALITY = 1.0;
9
    /**
10
     * Compression level, from 0 for none to 1 for maximum possible
11
     *
12
     * @var float
13
     */
14
    private $compression = self::DEFAULT_COMPRESSION;
15
    /**
16
     * Quality level, from 0 for minimum to 1 for maximum
17
     *
18
     * @var float
19
     */
20
    private $quality = self::DEFAULT_QUALITY;
21
22
    /**
23
     * @var EncodingOptions
24
     */
25
    private static $defaults;
26
27
    /**
28
     * @return float
29
     */
30
    public function getCompression()
31
    {
32
        return $this->compression;
33
    }
34
35
    /**
36
     * @param float $compression
37
     * @return $this
38
     */
39
    public function setCompression($compression)
40
    {
41
        $this->compression = $compression;
42
        return $this;
43
    }
44
45
    /**
46
     * @return float
47
     */
48
    public function getQuality()
49
    {
50
        return $this->quality;
51
    }
52
53
    /**
54
     * @param float $quality
55
     * @return $this
56
     */
57
    public function setQuality($quality)
58
    {
59
        $this->quality = $quality;
60
        return $this;
61
    }
62
63
    public static function defaults()
64
    {
65
        if (!isset(self::$defaults)) {
66
            self::$defaults = new EncodingOptions();
67
        }
68
        return self::$defaults;
69
    }
70
}
71