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.
This commit is contained in:
Julien Rioux 2013-07-13 16:10:27 +02:00 committed by Vincent van Ravesteijn
parent 822e171762
commit 096204e23f

View File

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