ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ImagickEngine.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
26 class ImagickEngine implements Engine
27 {
28  use PHPMemoryLimit;
29  protected array $whitelist = [
30  'jpg',
31  'jpeg',
32  'gif',
33  'png',
34  'webp',
35  'webm',
36  'tiff',
37  'tif',
38  'bmp',
39  'pdf',
40  'pdf',
41  'svg',
42  ];
43  protected array $supported;
44 
45  public function __construct()
46  {
47  $this->supported = array_intersect(
48  array_map(
49  fn($item): string => strtolower($item),
50  \Imagick::queryFormats()
51  ),
52  $this->whitelist
53  ) ?? [];
54  }
55 
56  public function supports(string $suffix): bool
57  {
58  return in_array(strtolower($suffix), $this->supported, true);
59  }
60 
61  public function isRunning(): bool
62  {
63  return extension_loaded('imagick') && class_exists(\Imagick::class);
64  }
65 
66 }