diff --git a/addons/addon-image/fixture/testimages/w3c_home_noexif.jpg b/addons/addon-image/fixture/testimages/w3c_home_noexif.jpg new file mode 100644 index 0000000000..a46c97ce66 Binary files /dev/null and b/addons/addon-image/fixture/testimages/w3c_home_noexif.jpg differ diff --git a/addons/addon-image/src/IIPMetrics.test.ts b/addons/addon-image/src/IIPMetrics.test.ts index 8ad5f05c85..9fa476bf62 100644 --- a/addons/addon-image/src/IIPMetrics.test.ts +++ b/addons/addon-image/src/IIPMetrics.test.ts @@ -25,6 +25,7 @@ const TEST_IMAGES: [string, IMetrics][] = [ ['w3c_home_gray.png', { mime: 'image/png', width: 72, height: 48 }], ['w3c_home.jpg', { mime: 'image/jpeg', width: 72, height: 48 }], ['w3c_home.png', { mime: 'image/png', width: 72, height: 48 }], + ['w3c_home_noexif.jpg', { mime: 'image/jpeg', width: 72, height: 48 }], ['spinfox.png', { mime: 'image/png', width: 148, height: 148 }], ['iphone_hdr_YES.jpg', { mime: 'image/jpeg', width: 3264, height: 2448 }], ['nikon-e950.jpg', { mime: 'image/jpeg', width: 800, height: 600 }], diff --git a/addons/addon-image/src/IIPMetrics.ts b/addons/addon-image/src/IIPMetrics.ts index 03770c4388..d5470466f9 100644 --- a/addons/addon-image/src/IIPMetrics.ts +++ b/addons/addon-image/src/IIPMetrics.ts @@ -32,13 +32,8 @@ export function imageType(d: Uint8Array): IMetrics { height: d[20] << 24 | d[21] << 16 | d[22] << 8 | d[23] }; } - // JPEG: FF D8 FF E0 xx xx JFIF or FF D8 FF E1 xx xx Exif 00 00 - if ((d32[0] === 0xE0FFD8FF || d32[0] === 0xE1FFD8FF) - && ( - (d[6] === 0x4a && d[7] === 0x46 && d[8] === 0x49 && d[9] === 0x46) - || (d[6] === 0x45 && d[7] === 0x78 && d[8] === 0x69 && d[9] === 0x66) - ) - ) { + // JPEG: FF D8 FF + if (d[0] === 0xFF && d[1] === 0xD8 && d[2] === 0xFF) { const [width, height] = jpgSize(d); return { mime: 'image/jpeg', width, height }; }