From 10c6ffafc392ac1530a77cbc916761cb5d281ba6 Mon Sep 17 00:00:00 2001 From: Patrik Date: Tue, 11 Jun 2024 13:45:49 -0400 Subject: [PATCH] fix: only use `metadata.pages` for height if animated (#6728) ## Description ### Issue: Non-animated webp / gif files were using `metadata.pages` to calculate it's resized heights for `imageSizes` or `cropping`. ### Fix: It should only use this to calculate it's height if the file's `metadata` contains `metadata.pages`. Non-animated webps and gifs would not have this. - [x] I have read and understand the [CONTRIBUTING.md](https://github.com/payloadcms/payload/blob/main/CONTRIBUTING.md) document in this repository. ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## Checklist: - [x] Existing test suite passes locally with my changes --- packages/payload/src/uploads/generateFileData.ts | 2 +- packages/payload/src/uploads/imageResizer.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/payload/src/uploads/generateFileData.ts b/packages/payload/src/uploads/generateFileData.ts index b9193c686..c65755386 100644 --- a/packages/payload/src/uploads/generateFileData.ts +++ b/packages/payload/src/uploads/generateFileData.ts @@ -219,7 +219,7 @@ export const generateFileData = async ({ fileData.height = info.height if (fileIsAnimated) { const metadata = await sharpFile.metadata() - fileData.height = info.height / metadata.pages + fileData.height = metadata.pages ? info.height / metadata.pages : info.height } fileData.filesize = info.size diff --git a/packages/payload/src/uploads/imageResizer.ts b/packages/payload/src/uploads/imageResizer.ts index f17a26350..052b8427e 100644 --- a/packages/payload/src/uploads/imageResizer.ts +++ b/packages/payload/src/uploads/imageResizer.ts @@ -364,7 +364,7 @@ export async function resizeAndTransformImageSizes({ name: imageResizeConfig.name, filename: imageNameWithDimensions, filesize: size, - height: fileIsAnimated ? height / metadata.pages : height, + height: fileIsAnimated && metadata.pages ? height / metadata.pages : height, mimeType: mimeInfo?.mime || mimeType, sizesToSave: [{ buffer: bufferData, path: imagePath }], width,