PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 4.2.11
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v4.2.11
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / vendor / codeinwp / optimole-sdk / src / Resource / ImageProperty / QualityProperty.php

QualityProperty.php in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 4.2.11, at vendor/codeinwp/optimole-sdk/src/Resource/ImageProperty/QualityProperty.php

55 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 /*
6 * This file is part of Optimole PHP SDK.
7 *
8 * (c) Optimole Team <friends@optimole.com>
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13
14 namespace Optimole\Sdk\Resource\ImageProperty;
15
16 use Optimole\Sdk\Exception\InvalidArgumentException;
17 use Optimole\Sdk\Resource\PropertyInterface;
18
19 class QualityProperty implements PropertyInterface
20 {
21 /**
22 * The allowed automated image quality options.
23 */
24 private const ALLOWED_QUALITY = ['auto', 'eco', 'mauto'];
25
26 /**
27 * The quality of the image.
28 */
29 private $quality;
30
31 /**
32 * Constructor.
33 */
34 public function __construct($quality = 'mauto')
35 {
36 if (!is_string($quality) && !is_int($quality)) {
37 throw new InvalidArgumentException('Image quality must be a string or an integer.');
38 } elseif (is_string($quality) && !in_array($quality, self::ALLOWED_QUALITY)) {
39 throw new InvalidArgumentException('Image quality must be "auto", "eco" or "mauto".');
40 } elseif (is_int($quality)) {
41 $quality = max(0, min(100, $quality));
42 }
43
44 $this->quality = $quality;
45 }
46
47 /**
48 * {@inheritdoc}
49 */
50 public function __toString(): string
51 {
52 return sprintf('q:%s', $this->quality);
53 }
54 }
55