--- /dev/null
+<?php
+
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+
+use Cubist\Backpack\Magic\Fields\Percent;
+use Cubist\Backpack\Magic\Fields\StandardFile;
+use Cubist\Backpack\Magic\Form;
+use Cubist\Util\Files\Files;
+use Cubist\Util\Zip;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
+// __('!! Outils')
+trait ImagesResizer
+{
+
+ public function resizer()
+ {
+ $form = new Form(backpack_url('tools/doresize'));
+ $form->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);
+ }
+
+}
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;
use FluidbookBranchCreate;
use FluidbookBranchRemove;
use Favicon;
+ use ImagesResizer;
protected function index($tool, $args = '')
{
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/pdf2svg') }}'><i
class='nav-icon la la-images'></i>
<span>{{__('Conversion de PDF en images')}}</span></a></li>
+ <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/resizer') }}'><i class="nav-icon las la-compress-arrows-alt"></i>
+ <span>{{__('Redimensionner des images')}}</span></a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookassetsdownloader') }}'><i
class='nav-icon las la-cloud-download-alt'></i>
<span>{{__('Téléchargement massif d\'assets dans un fluidbook')}}</span></a></li>