From 4e49c68e36d2bbf652d331c49ff63da69fc70062 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 2 Mar 2023 22:30:27 +0100 Subject: [PATCH] wip #5772 @0.5 --- .../Admin/Operations/Tools/ImagesResizer.php | 61 +++++++++++++++++++ .../Controllers/Admin/ToolsController.php | 2 + resources/views/tools/sidebar.blade.php | 2 + 3 files changed, 65 insertions(+) create mode 100644 app/Http/Controllers/Admin/Operations/Tools/ImagesResizer.php diff --git a/app/Http/Controllers/Admin/Operations/Tools/ImagesResizer.php b/app/Http/Controllers/Admin/Operations/Tools/ImagesResizer.php new file mode 100644 index 000000000..d96d29bf8 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/Tools/ImagesResizer.php @@ -0,0 +1,61 @@ +setEnctype('multipart/form-data'); + $form->setTitle(__('Redimensionner des images')); + $form->setSubmitLabel(__('Redimensionner')); + $form->setSubmitIcon('la-compress-arrows-alt'); + $form->addField('file[]', StandardFile::class, __('Images'), ['multiple' => true, 'accept' => ['.jpg', '.png', '.jpeg', '.svg']]); + $form->addField('scale', Percent::class, __('Facteur'), ['max' => 3000, 'default' => 100]); + + return view('tools.form', ['form' => $form]); + } + + public function doresize($args = []) + { + $dir = Files::tmpdir(); + + $scale = request()->get('scale', 100); + $files = request()->allFiles(); + + foreach ($files['file'] as $file) { + /** @var $file UploadedFile */ + $path = $file->getPathname(); + $local = $dir . "/" . $file->getClientOriginalName(); + move_uploaded_file($path, $local); + + $ext = mb_strtolower($file->getExtension()); + if ($ext === 'svg') { + + } else { + `convert $local -resize $scale% $local`; + } + } + + + $ext = 'zip'; + $fname = $file->getClientOriginalName(); + $tmpfile = Files::tempnam() . '.zip'; + Zip::archive($dir, $tmpfile); + + return response()->download($tmpfile, $fname . '.' . $ext)->deleteFileAfterSend(true); + } + +} diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index eedb33355..048e4fb1b 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -11,6 +11,7 @@ use App\Http\Controllers\Admin\Operations\Tools\FluidbookAssetsDownloader; use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchCreate; use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchRemove; use App\Http\Controllers\Admin\Operations\Tools\GitReposCreate; +use App\Http\Controllers\Admin\Operations\Tools\ImagesResizer; use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel; use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation; use App\Http\Controllers\Admin\Operations\Tools\TextToSpeech; @@ -28,6 +29,7 @@ class ToolsController extends Controller use FluidbookBranchCreate; use FluidbookBranchRemove; use Favicon; + use ImagesResizer; protected function index($tool, $args = '') { diff --git a/resources/views/tools/sidebar.blade.php b/resources/views/tools/sidebar.blade.php index 96b350266..c684ca867 100644 --- a/resources/views/tools/sidebar.blade.php +++ b/resources/views/tools/sidebar.blade.php @@ -3,6 +3,8 @@ + -- 2.39.5