From 096204e23fb9a366e7508d93432a70efcd56e212 Mon Sep 17 00:00:00 2001 From: Julien Rioux Date: Sat, 13 Jul 2013 16:10:27 +0200 Subject: [PATCH] Fix JPEG format detection Detect JPEG files using the magic number FF D8 (so-called SOI marker) instead of the string JFIF, which does not appear in all JPEG files. --- src/Format.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Format.cpp b/src/Format.cpp index 485715b6e3..1ee64116ff 100644 --- a/src/Format.cpp +++ b/src/Format.cpp @@ -206,7 +206,7 @@ string guessFormatFromContents(FileName const & fn) // FIG #FIG... // FITS ...BITPIX... // GIF GIF... - // JPG JFIF + // JPG \377\330... (0xFFD8) // PDF %PDF-... // PNG .PNG... // PBM P1... or P4 (B/W) @@ -280,6 +280,9 @@ string guessFormatFromContents(FileName const & fn) } else if (stamp == "BM") { format = "bmp"; + } else if (stamp == "\377\330") { + format = "jpg"; + } else if (stamp == "\001\332") { format = "sgi"; @@ -335,9 +338,6 @@ string guessFormatFromContents(FileName const & fn) else if (contains(str, "Grace")) format = "agr"; - else if (contains(str, "JFIF")) - format = "jpg"; - else if (contains(str, "%PDF")) // autodetect pdf format for graphics inclusion format = "pdf6"; -- 2.39.2