From 5a54ddd71e46d4c47d011ee817f5bfca55256292 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Tue, 12 Nov 2024 11:19:47 +0700 Subject: [PATCH] Accept AVIF images #10871 --- src/Model/Traits/Image.php | 2 ++ tests/Model/Traits/ImageTest.php | 1 + tests/data/images/image.avif | Bin 0 -> 4726 bytes 3 files changed, 3 insertions(+) create mode 100644 tests/data/images/image.avif diff --git a/src/Model/Traits/Image.php b/src/Model/Traits/Image.php index c727dbe..9f1a372 100644 --- a/src/Model/Traits/Image.php +++ b/src/Model/Traits/Image.php @@ -28,6 +28,7 @@ protected function getBasePath(): string protected function getAcceptedMimeTypes(): array { return [ + 'image/avif', 'image/bmp', 'image/x-ms-bmp', 'image/gif', @@ -106,6 +107,7 @@ private function readFileInfo(): void // Pretty much only SVG is better than WebP $worseThanWebp = in_array($this->getMime(), [ + 'image/avif', 'image/bmp', 'image/x-ms-bmp', 'image/gif', diff --git a/tests/Model/Traits/ImageTest.php b/tests/Model/Traits/ImageTest.php index 832d193..9e1413b 100644 --- a/tests/Model/Traits/ImageTest.php +++ b/tests/Model/Traits/ImageTest.php @@ -70,6 +70,7 @@ public static function providerSetFile(): iterable { yield 'jpg is converted to webp' => ['image.jpg', 400, 400]; yield 'png is converted to webp' => ['image.png', 400, 300]; + yield 'avif is converted to webp' => ['image.avif', 400, 299]; yield 'svg is untouched' => ['logo.svg', 445, 488, true]; yield 'webp is untouched' => ['image.webp', 400, 400]; yield 'huge jpg is resized to webp' => ['huge.jpg', 3500, 19]; diff --git a/tests/data/images/image.avif b/tests/data/images/image.avif new file mode 100644 index 0000000000000000000000000000000000000000..e689b054028600d274f210330ced63552756b95d GIT binary patch literal 4726 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 literal 0 HcmV?d00001