File "ImageGeneratorFactory.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/vendor/spatie/laravel-medialibrary/src/Conversions/ImageGenerators/ImageGeneratorFactory.php
File size: 1.53 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Spatie\MediaLibrary\Conversions\ImageGenerators;
use Illuminate\Support\Collection;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
class ImageGeneratorFactory
{
public static function getImageGenerators(): Collection
{
return collect(config('media-library.image_generators'))
->map(function ($imageGeneratorClassName, $key) {
$imageGeneratorConfig = [];
if (! is_numeric($key)) {
$imageGeneratorConfig = $imageGeneratorClassName;
$imageGeneratorClassName = $key;
}
return app($imageGeneratorClassName, $imageGeneratorConfig);
});
}
public static function forExtension(?string $extension): ?ImageGenerator
{
if (is_null($extension)) {
return null;
}
return static::getImageGenerators()
->first(fn (ImageGenerator $imageGenerator) => $imageGenerator->canHandleExtension(strtolower($extension)));
}
public static function forMimeType(?string $mimeType): ?ImageGenerator
{
if (is_null($mimeType)) {
return null;
}
return static::getImageGenerators()
->first(fn (ImageGenerator $imageGenerator) => $imageGenerator->canHandleMime($mimeType));
}
public static function forMedia(Media $media): ?ImageGenerator
{
return static::getImageGenerators()
->first(fn (ImageGenerator $imageGenerator) => $imageGenerator->canConvert($media));
}
}