diff --git a/app/Controllers/UploadController.php b/app/Controllers/UploadController.php index bb46e8cdb5d387733bf0425803f27b6a33465376..e43971cdcbf6347a148ac64791eb65dc10737def 100644 --- a/app/Controllers/UploadController.php +++ b/app/Controllers/UploadController.php @@ -3,6 +3,7 @@ namespace App\Controllers; use GuzzleHttp\Psr7\Stream; +use Intervention\Image\Constraint; use Intervention\Image\ImageManagerStatic as Image; use League\Flysystem\FileExistsException; use League\Flysystem\FileNotFoundException; @@ -378,16 +379,20 @@ class UploadController extends Controller if (param($request, 'width') !== null && explode('/', $mime)[0] === 'image') { $image = Image::make($storage->readStream($media->storage_path)) - ->resizeCanvas( + ->resize( param($request, 'width'), param($request, 'height'), - 'center') - ->encode('png'); + function (Constraint $constraint) { + $constraint->aspectRatio(); + }) + ->resizeCanvas(param($request, 'width'), + param($request, 'height'), 'center') + ->stream('png'); - $response->getBody()->write($image); return $response ->withHeader('Content-Type', 'image/png') - ->withHeader('Content-Disposition', $disposition.';filename="scaled-'.pathinfo($media->filename)['filename'].'.png"'); + ->withHeader('Content-Disposition', $disposition.';filename="scaled-'.pathinfo($media->filename, PATHINFO_FILENAME).'.png"') + ->withBody($image); } else { $stream = new Stream($storage->readStream($media->storage_path)); diff --git a/resources/templates/dashboard/grid.twig b/resources/templates/dashboard/grid.twig index 84aa0d5b9e2cdc694292441edf82dfbe1d8601d4..7c332d098b9a1aa21d027bbf4583e5aa7238e621 100644 --- a/resources/templates/dashboard/grid.twig +++ b/resources/templates/dashboard/grid.twig @@ -13,7 +13,7 @@