From bb930b3886e3a2308427770115f2dd0f9fa53706 Mon Sep 17 00:00:00 2001 From: gstone Date: Thu, 29 Jan 2026 16:19:10 -0500 Subject: [PATCH] Some valid JPEG files may not be loaded using XImage.FromFile() #256 --- .../Drawing.Internal/ImageImporterJpeg.cs | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/foundation/src/PDFsharp/src/PdfSharp/Drawing.Internal/ImageImporterJpeg.cs b/src/foundation/src/PDFsharp/src/PdfSharp/Drawing.Internal/ImageImporterJpeg.cs index c7096aed..afa58b35 100644 --- a/src/foundation/src/PDFsharp/src/PdfSharp/Drawing.Internal/ImageImporterJpeg.cs +++ b/src/foundation/src/PDFsharp/src/PdfSharp/Drawing.Internal/ImageImporterJpeg.cs @@ -28,24 +28,23 @@ class ImageImporterJpeg : ImageImporterRoot, IImageImporter var ipd = new ImagePrivateDataDct(stream.Data, stream.Length); var ii = new ImportedImageJpeg(ipd); ii.Information.DefaultDPI = 72; // Assume 72 DPI if information not provided in the file. - if (TestJfifHeader(stream, ii)) - { - bool colorHeader = false, infoHeader = false; + TestJfifHeader(stream, ii); // App headers are optional + + bool colorHeader = false, infoHeader = false; - while (MoveToNextHeader(stream)) + while (MoveToNextHeader(stream)) + { + if (TestColorFormatHeader(stream, ii)) + { + colorHeader = true; + } + else if (TestInfoHeader(stream, ii)) { - if (TestColorFormatHeader(stream, ii)) - { - colorHeader = true; - } - else if (TestInfoHeader(stream, ii)) - { - infoHeader = true; - } + infoHeader = true; } - if (colorHeader && infoHeader) - return ii; } + if (colorHeader && infoHeader) + return ii; } } // ReSharper disable once EmptyGeneralCatchClause