Closed tyteen4a03 closed 7 months ago
Hi @tyteen4a03,
Yes, it supports webp. Could you provide more information?
For example, give me more details about the attachment itself, error log, your action (resize, crop, ...)
and attach your original uploaded file here.
I narrowed down the issue a little bit more, it seems to be stuck on animated webps (I can't attach those but any animated webp will fail). Non-animated webps are fine.
Intervention\Image\Exception\NotReadableException: Unable to decode image from file (/tmp/phpj4idOM).
#93 /vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php(81): Intervention\Image\Gd\Decoder::initFromPath
#92 /vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php(344): Intervention\Image\AbstractDecoder::init
#91 /vendor/intervention/image/src/Intervention/Image/AbstractDriver.php(66): Intervention\Image\AbstractDriver::init
#90 /vendor/intervention/image/src/Intervention/Image/ImageManager.php(54): Intervention\Image\ImageManager::make
#89 /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(353): Illuminate\Support\Facades\Facade::__callStatic
#88 /vendor/mostafaznv/nova-ckeditor/src/ImageStorage.php(64): Mostafaznv\NovaCkEditor\ImageStorage::resizeImage
#87 /vendor/mostafaznv/nova-ckeditor/src/ImageStorage.php(49): Mostafaznv\NovaCkEditor\ImageStorage::resize
#86 /vendor/mostafaznv/nova-ckeditor/src/ImageStorage.php(28): Mostafaznv\NovaCkEditor\ImageStorage::handleUpload
#85 /vendor/mostafaznv/nova-ckeditor/src/Storage.php(24): Mostafaznv\NovaCkEditor\Storage::__invoke
#84 [internal](0): call_user_func
#83 /vendor/laravel/nova/src/Fields/File.php(308): Laravel\Nova\Fields\File::fillAttribute
#82 /vendor/laravel/nova/src/Fields/Field.php(436): Laravel\Nova\Fields\Field::fillInto
#81 /vendor/laravel/nova/src/Fields/Field.php(412): Laravel\Nova\Fields\Field::fill
#80 /vendor/laravel/framework/src/Illuminate/Collections/HigherOrderCollectionProxy.php(60): Illuminate\Support\HigherOrderCollectionProxy::Illuminate\Support\{closure}
#79 [internal](0): array_map
#78 /vendor/laravel/framework/src/Illuminate/Collections/Arr.php(558): Illuminate\Support\Arr::map
#77 /vendor/laravel/framework/src/Illuminate/Collections/Collection.php(777): Illuminate\Support\Collection::map
#76 /vendor/laravel/framework/src/Illuminate/Collections/HigherOrderCollectionProxy.php(61): Illuminate\Support\HigherOrderCollectionProxy::__call
#75 /vendor/laravel/nova/src/FillsFields.php(100): Laravel\Nova\Resource::fillFields
#74 /vendor/laravel/nova/src/FillsFields.php(24): Laravel\Nova\Resource::fill
#73 /vendor/laravel/nova/src/Http/Controllers/ResourceStoreController.php(43): Laravel\Nova\Http\Controllers\ResourceStoreController::Laravel\Nova\Http\Controllers\{closure}
#72 /vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(30): Illuminate\Database\Connection::transaction
#71 /vendor/laravel/nova/src/Http/Controllers/ResourceStoreController.php(62): Laravel\Nova\Http\Controllers\ResourceStoreController::__invoke
#70 /vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Illuminate\Routing\Controller::callAction
#69 /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\ControllerDispatcher::dispatch
#68 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(21): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing::Sentry\Laravel\Tracing\Routing\{closure}
#67 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingRoutingDispatcher.php(19): Sentry\Laravel\Tracing\Routing\TracingRoutingDispatcher::wrapRouteDispatch
#66 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(20): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing::dispatch
#65 /vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\Routing\Route::runController
#64 /vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route::run
#63 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(799): Illuminate\Routing\Router::Illuminate\Routing\{closure}
#62 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#61 /vendor/laravel/nova/src/Http/Middleware/Authorize.php(18): Laravel\Nova\Http\Middleware\Authorize::handle
#60 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#59 /vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(57): Illuminate\Auth\Middleware\Authenticate::handle
#58 /vendor/laravel/nova/src/Http/Middleware/Authenticate.php(31): Laravel\Nova\Http\Middleware\Authenticate::handle
#57 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#56 /vendor/laravel/nova/src/Http/Middleware/BootTools.php(20): Laravel\Nova\Http\Middleware\BootTools::handle
#55 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#54 /vendor/laravel/nova/src/Http/Middleware/DispatchServingNovaEvent.php(33): Laravel\Nova\Http\Middleware\DispatchServingNovaEvent::handle
#53 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#52 /vendor/inertiajs/inertia-laravel/src/Middleware.php(87): Inertia\Middleware::handle
#51 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#50 /app/Http/Middleware/AutoIpAddress.php(28): App\Http\Middleware\AutoIpAddress::handle
#49 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#48 <hidden>
#47 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#46 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::handle
#45 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#44 /vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\View\Middleware\ShareErrorsFromSession::handle
#43 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#42 /vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Session\Middleware\StartSession::handleStatefulRequest
#41 /vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession::handle
#40 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#39 /vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::handle
#38 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#37 /vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Cookie\Middleware\EncryptCookies::handle
#36 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#35 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline::then
#34 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\Routing\Router::runRouteWithinStack
#33 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(777): Illuminate\Routing\Router::runRoute
#32 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(741): Illuminate\Routing\Router::dispatchToRoute
#31 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(730): Illuminate\Routing\Router::dispatch
#30 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Foundation\Http\Kernel::Illuminate\Foundation\Http\{closure}
#29 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#28 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Sentry\Laravel\Http\SetRequestIpMiddleware::handle
#27 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#26 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(31): Sentry\Laravel\Http\SetRequestMiddleware::handle
#25 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#24 /vendor/laravel/nova/src/Http/Middleware/ServeNova.php(23): Laravel\Nova\Http\Middleware\ServeNova::handle
#23 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#22 /app/Http/Middleware/SentryMw.php(27): App\Http\Middleware\SentryMw::handle
#21 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#20 /app/Http/Middleware/GlobalFrameOptions.php(19): App\Http\Middleware\GlobalFrameOptions::handle
#19 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#18 /vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Http\Middleware\TrustProxies::handle
#17 /app/Http/Middleware/TrustProxies.php(33): App\Http\Middleware\TrustProxies::handle
#16 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#15 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Foundation\Http\Middleware\TransformsRequest::handle
#14 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::handle
#13 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#12 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Foundation\Http\Middleware\TransformsRequest::handle
#11 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TrimStrings::handle
#10 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#9 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Foundation\Http\Middleware\ValidatePostSize::handle
#8 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#7 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance::handle
#6 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#5 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(87): Sentry\Laravel\Tracing\Middleware::handle
#4 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::Illuminate\Pipeline\{closure}
#3 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline::then
#2 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Foundation\Http\Kernel::sendRequestThroughRouter
#1 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel::handle
#0 /public/index.php(52): null
Thanks for your report. I will check it tomorrow (it’s 1 AM here 😄).
It would be nice if you could attach any animated webp that causes the error
GitHub doesn't allow for that, so the easiest way to reproduce is to grab a gif on giphy, download it, convert on a service such as ezgif, and upload it to Laravel.
Hi @tyteen4a03,
I've investigated the issue, and it appears to be related to libgd. It seems that gd doesn't support animated webp images. You can find more information in these references: 1, 2, 3.
I recommend using Imagick as your image processing library. I've tested it, and it worked like a charm.
Whenever I try to upload webp images, I get this exception: Unable to decode image from file (/tmp/something)
Does this library support handling WebP? I checked my phpinfo and my GD is compiled with WebP support.