File "PerformManipulationsAction.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/vendor/spatie/laravel-medialibrary/src/Conversions/Actions/PerformManipulationsAction.php
File size: 1.4 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Spatie\MediaLibrary\Conversions\Actions;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use Spatie\MediaLibrary\Conversions\Conversion;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Spatie\MediaLibrary\Support\ImageFactory;
class PerformManipulationsAction
{
public function execute(
Media $media,
Conversion $conversion,
string $imageFile
): string {
if ($conversion->getManipulations()->isEmpty()) {
return $imageFile;
}
$conversionTempFile = $this->getConversionTempFileName($media, $conversion, $imageFile);
File::copy($imageFile, $conversionTempFile);
$supportedFormats = ['jpg', 'pjpg', 'png', 'gif'];
if ($conversion->shouldKeepOriginalImageFormat() && in_array($media->extension, $supportedFormats)) {
$conversion->format($media->extension);
}
ImageFactory::load($conversionTempFile)
->manipulate($conversion->getManipulations())
->save();
return $conversionTempFile;
}
protected function getConversionTempFileName(
Media $media,
Conversion $conversion,
string $imageFile
): string {
$directory = pathinfo($imageFile, PATHINFO_DIRNAME);
$fileName = Str::random(32)."{$conversion->getName()}.{$media->extension}";
return "{$directory}/{$fileName}";
}
}