commit 096204e23fb9a366e7508d93432a70efcd56e212
Author: Julien Rioux <[email protected]>
Date: Sat Jul 13 16:10:27 2013 +0200
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.
diff --git a/src/Format.cpp b/src/Format.cpp
index 485715b..1ee6411 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";