diff --git a/src/UglyToad.PdfPig.Tests/Images/Files/Jpg/218995467-ccb746b0-dc28-4616-bcb1-4ad685f81876.jpg b/src/UglyToad.PdfPig.Tests/Images/Files/Jpg/218995467-ccb746b0-dc28-4616-bcb1-4ad685f81876.jpg new file mode 100644 index 00000000..d9875e94 Binary files /dev/null and b/src/UglyToad.PdfPig.Tests/Images/Files/Jpg/218995467-ccb746b0-dc28-4616-bcb1-4ad685f81876.jpg differ diff --git a/src/UglyToad.PdfPig.Tests/Images/JpegHandlerTests.cs b/src/UglyToad.PdfPig.Tests/Images/JpegHandlerTests.cs new file mode 100644 index 00000000..45d6d96b --- /dev/null +++ b/src/UglyToad.PdfPig.Tests/Images/JpegHandlerTests.cs @@ -0,0 +1,38 @@ +namespace UglyToad.PdfPig.Tests.Images +{ + using System; + using System.IO; + using Xunit; + using JpegHandler = UglyToad.PdfPig.Images.JpegHandler; + + public class JpegHandlerTests + { + + + [Fact] + public void CanGetJpegInformation() + { + + var dataJpg = LoadJpg("218995467-ccb746b0-dc28-4616-bcb1-4ad685f81876.jpg"); + + using (var ms = new MemoryStream(dataJpg)) + { + var jpegInfo = JpegHandler.GetInformation(ms); + + Assert.Equal(8, jpegInfo.BitsPerComponent); + Assert.Equal(2290, jpegInfo.Height); + Assert.Equal(1648, jpegInfo.Width); + } + } + + + + private static byte[] LoadJpg(string name) + { + var baseFolder = Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory); + var JpgFilesFolder = Path.Combine(baseFolder, "..", "..", "..", "Images", "Files", "Jpg"); ; + var JpgFilePath = Path.Combine(JpgFilesFolder, name); + return File.ReadAllBytes(JpgFilePath); + } + } +} diff --git a/src/UglyToad.PdfPig.Tests/UglyToad.PdfPig.Tests.csproj b/src/UglyToad.PdfPig.Tests/UglyToad.PdfPig.Tests.csproj index 878d9824..6879cdc1 100644 --- a/src/UglyToad.PdfPig.Tests/UglyToad.PdfPig.Tests.csproj +++ b/src/UglyToad.PdfPig.Tests/UglyToad.PdfPig.Tests.csproj @@ -133,9 +133,4 @@ PreserveNewest - - - - - diff --git a/src/UglyToad.PdfPig/Images/JpegHandler.cs b/src/UglyToad.PdfPig/Images/JpegHandler.cs index 46c19726..eb4c70af 100644 --- a/src/UglyToad.PdfPig/Images/JpegHandler.cs +++ b/src/UglyToad.PdfPig/Images/JpegHandler.cs @@ -1,6 +1,6 @@ namespace UglyToad.PdfPig.Images { - using System; + using System; using System.IO; internal static class JpegHandler @@ -28,6 +28,19 @@ { switch (marker) { + case JpegMarker.StartOfImage: + case JpegMarker.EndOfImage: + case JpegMarker.Restart0: + case JpegMarker.Restart1: + case JpegMarker.Restart2: + case JpegMarker.Restart3: + case JpegMarker.Restart4: + case JpegMarker.Restart5: + case JpegMarker.Restart6: + case JpegMarker.Restart7: + + // No length markers + break; case JpegMarker.StartOfBaselineDctFrame: case JpegMarker.StartOfProgressiveDctFrame: { @@ -55,6 +68,7 @@ case JpegMarker.ApplicationSpecific13: case JpegMarker.ApplicationSpecific14: case JpegMarker.ApplicationSpecific15: + default: { var length = ReadShort(stream, shortBuffer); stream.Seek(length - 2, SeekOrigin.Current); @@ -105,7 +119,7 @@ } if (previous.HasValue && previous.Value == MarkerStart && b != MarkerStart) - { + { return b; }