GdImageReader::supports()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Damax\Media\Metadata;
6
7
use Damax\Common\Domain\Model\Metadata;
8
use Damax\Media\Domain\Metadata\Reader;
9
10
final class GdImageReader implements Reader
11
{
12
    public function supports($context): bool
13
    {
14
        if (!extension_loaded('gd')) {
15
            // @codeCoverageIgnoreStart
16
            return false;
17
            // @codeCoverageIgnoreEnd
18
        }
19
20
        return 0 === strpos($context['mime_type'] ?? 'plain/text', 'image/');
21
    }
22
23
    public function extract($context): Metadata
24
    {
25
        rewind($context['stream']);
26
27
        $image = imagecreatefromstring(stream_get_contents($context['stream']));
28
29
        $data = [
30
            'width' => imagesx($image),
31
            'height' => imagesy($image),
32
        ];
33
34
        imagedestroy($image);
35
36
        return Metadata::fromArray($data);
37
    }
38
}
39