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";

Reply via email to