19 declare(strict_types=1);
36 public const ID =
"4c7e3aaff42a352fa3fd3dfc4d4a994cc3dfdd97e97c2c2c9932e22e2e57357a";
59 return GDEngine::class;
68 $this->definition = $for_definition;
72 foreach ($for_definition->getWidths() as $width) {
73 if (($crop_stream = $this->
cropImage($stream, $width)) === null) {
90 $quality = $width <= self::FULL_QUALITY_SIZE_THRESHOLD
92 : $this->definition->getQuality();
94 return $this->crop->processStream(
100 $this->definition->getRatio(),
103 )->current()?->getStream();
cropImage(FileStream $stream, int $width)
const FULL_QUALITY_SIZE_THRESHOLD
ilObjectTileImageFlavourDefinition $definition
processStream(FileInformation $information, FileStream $stream, FlavourDefinition $for_definition)
canHandleDefinition(FlavourDefinition $definition)
Check if a corresponding configuration can be processed by this Machine.
FileInformation $information
dependsOnEngine()
Return the class name of the Engine that is required for this Machine to work.
The base interface for all filesystem streams.
__construct()
FlavourMachines must be able to be created without further dependencies.