This commit is contained in:
2023-07-21 11:18:08 +10:00
parent d814ed1972
commit be3c6d89ee

View File

@@ -126,6 +126,18 @@ class StoreUploadedFileJob implements ShouldQueue
$originalImage = Image::make($this->uploadedFilePath); $originalImage = Image::make($this->uploadedFilePath);
$imageSize = $originalImage->getSize();
$isPortrait = $imageSize->getHeight() > $imageSize->getWidth();
// Swap width and height values for portrait images
foreach ($sizes as $variantName => &$size) {
if ($isPortrait === true) {
$temp = $size['width'];
$size['width'] = $size['height'];
$size['height'] = $temp;
}
}
$dimensions = [$originalImage->getWidth(), $originalImage->getHeight()]; $dimensions = [$originalImage->getWidth(), $originalImage->getHeight()];
$this->media->dimensions = implode('x', $dimensions); $this->media->dimensions = implode('x', $dimensions);
@@ -147,7 +159,8 @@ class StoreUploadedFileJob implements ShouldQueue
// Store the variant in the variants array // Store the variant in the variants array
$variants[$variantName] = $newFilename; $variants[$variantName] = $newFilename;
// Resize the image to the variant size if its dimensions are greater than the specified size // Resize the image to the variant size if its dimensions are greater than the
// specified size
$image = clone $originalImage; $image = clone $originalImage;
$imageSize = $image->getSize(); $imageSize = $image->getSize();
@@ -160,6 +173,8 @@ class StoreUploadedFileJob implements ShouldQueue
$image->resizeCanvas($size['width'], $size['height'], 'center', false, '#FFFFFF'); $image->resizeCanvas($size['width'], $size['height'], 'center', false, '#FFFFFF');
} }
$image->orientate();
// Optimize and store image // Optimize and store image
$tempImagePath = tempnam(sys_get_temp_dir(), 'optimize'); $tempImagePath = tempnam(sys_get_temp_dir(), 'optimize');
$image->encode('webp', 75)->save($tempImagePath); $image->encode('webp', 75)->save($tempImagePath);