Add WebP support

This commit is contained in:
Daniel Supernault 2021-06-08 03:22:01 -06:00
parent 1baf378497
commit 069a0e4ae1
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
5 changed files with 68 additions and 58 deletions

View file

@ -26,6 +26,7 @@ trait AdminSettingsController
$png = in_array('image/png', $types); $png = in_array('image/png', $types);
$gif = in_array('image/gif', $types); $gif = in_array('image/gif', $types);
$mp4 = in_array('video/mp4', $types); $mp4 = in_array('video/mp4', $types);
$webp = in_array('image/webp', $types);
// $system = [ // $system = [
// 'permissions' => is_writable(base_path('storage')) && is_writable(base_path('bootstrap')), // 'permissions' => is_writable(base_path('storage')) && is_writable(base_path('bootstrap')),
@ -39,6 +40,7 @@ trait AdminSettingsController
'png', 'png',
'gif', 'gif',
'mp4', 'mp4',
'webp',
'rules', 'rules',
'cloud_storage', 'cloud_storage',
'cloud_disk', 'cloud_disk',
@ -60,6 +62,7 @@ trait AdminSettingsController
'type_png' => 'nullable', 'type_png' => 'nullable',
'type_gif' => 'nullable', 'type_gif' => 'nullable',
'type_mp4' => 'nullable', 'type_mp4' => 'nullable',
'type_webp' => 'nullable',
]); ]);
if($request->filled('rule_delete')) { if($request->filled('rule_delete')) {
@ -83,6 +86,7 @@ trait AdminSettingsController
'type_png' => 'image/png', 'type_png' => 'image/png',
'type_gif' => 'image/gif', 'type_gif' => 'image/gif',
'type_mp4' => 'video/mp4', 'type_mp4' => 'video/mp4',
'type_webp' => 'image/webp',
]; ];
foreach ($mimes as $key => $value) { foreach ($mimes as $key => $value) {

View file

@ -136,6 +136,7 @@ class ComposeController extends Controller
switch ($media->mime) { switch ($media->mime) {
case 'image/jpeg': case 'image/jpeg':
case 'image/png': case 'image/png':
case 'image/webp':
ImageOptimize::dispatch($media); ImageOptimize::dispatch($media);
break; break;

View file

@ -23,6 +23,7 @@ class ImageUpdate implements ShouldQueue
protected $protectedMimes = [ protected $protectedMimes = [
'image/jpeg', 'image/jpeg',
'image/png', 'image/png',
'image/webp'
]; ];
/** /**
@ -78,6 +79,5 @@ class ImageUpdate implements ShouldQueue
$media->save(); $media->save();
MediaStoragePipeline::dispatch($media); MediaStoragePipeline::dispatch($media);
} }
} }

View file

@ -15,7 +15,8 @@ class Image
public $orientation; public $orientation;
public $acceptedMimes = [ public $acceptedMimes = [
'image/png', 'image/png',
'image/jpeg' 'image/jpeg',
'image/webp'
]; ];
public function __construct() public function __construct()

View file

@ -238,8 +238,12 @@
<label class="custom-control-label" for="mediaType3"><span class="border border-dark px-1 rounded font-weight-bold">GIF</span></label> <label class="custom-control-label" for="mediaType3"><span class="border border-dark px-1 rounded font-weight-bold">GIF</span></label>
</div> </div>
<div class="custom-control custom-checkbox mt-2"> <div class="custom-control custom-checkbox mt-2">
<input type="checkbox" name="type_mp4" class="custom-control-input" id="mediaType4" {{$mp4 ? 'checked' : ''}}> <input type="checkbox" name="type_webp" class="custom-control-input" id="mediaType4" {{$webp ? 'checked' : ''}}>
<label class="custom-control-label" for="mediaType4"><span class="border border-dark px-1 rounded font-weight-bold">MP4</span></label> <label class="custom-control-label" for="mediaType4"><span class="border border-dark px-1 rounded font-weight-bold">WebP</span></label>
</div>
<div class="custom-control custom-checkbox mt-2">
<input type="checkbox" name="type_mp4" class="custom-control-input" id="mediaType5" {{$mp4 ? 'checked' : ''}}>
<label class="custom-control-label" for="mediaType5"><span class="border border-dark px-1 rounded font-weight-bold">MP4</span></label>
</div> </div>
<p class="help-text small text-muted mt-3 mb-0">Allowed media types.</p> <p class="help-text small text-muted mt-3 mb-0">Allowed media types.</p>
</div> </div>