From 11b74147ee67944c1707b4cc0b4db1cedc73aacc Mon Sep 17 00:00:00 2001 From: Greg Wainer Date: Fri, 19 Jul 2024 17:39:04 -0500 Subject: [PATCH] Fix/webp exif little endian (#4061) * Fix for isLittleEndian flag in parseExifData. * Add break after reading first exif chunk in getWebpMetadata. --- web/scripts/pnginfo.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/scripts/pnginfo.js b/web/scripts/pnginfo.js index 2c03cf74..8b1b2c61 100644 --- a/web/scripts/pnginfo.js +++ b/web/scripts/pnginfo.js @@ -49,7 +49,7 @@ export function getPngMetadata(file) { function parseExifData(exifData) { // Check for the correct TIFF header (0x4949 for little-endian or 0x4D4D for big-endian) - const isLittleEndian = new Uint16Array(exifData.slice(0, 2))[0] === 0x4949; + const isLittleEndian = String.fromCharCode(...exifData.slice(0, 2)) === "II"; // Function to read 16-bit and 32-bit integers from binary data function readInt(offset, isLittleEndian, length) { @@ -134,6 +134,7 @@ export function getWebpMetadata(file) { let index = value.indexOf(':'); txt_chunks[value.slice(0, index)] = value.slice(index + 1); } + break; } offset += 8 + chunk_length;