public function performConversions(ConversionCollection $conversions, Media $media)
{
$imageGenerator = $this->determineImageGenerator($media);
if (!$imageGenerator) {
return;
}
$tempDirectory = $this->createTempDirectory();
$copiedOriginalFile = $tempDirectory . '/' . str_random(16) . '.' . $media->extension;
app(Filesystem::class)->copyFromMediaLibrary($media, $copiedOriginalFile);
foreach ($conversions as $conversion) {
$copiedOriginalFile = $imageGenerator->convert($copiedOriginalFile, $conversion);
$conversionResult = $this->performConversion($media, $conversion, $copiedOriginalFile);
$renamedFile = MediaLibraryFileHelper::renameInDirectory($conversionResult, $conversion->getName() . '.' . $conversion->getResultExtension(pathinfo($copiedOriginalFile, PATHINFO_EXTENSION)));
app(Filesystem::class)->copyToMediaLibrary($renamedFile, $media, true);
event(new ConversionHasBeenCompleted($media, $conversion));
}
File::deleteDirectory($tempDirectory);
}