mirror of
https://github.com/UglyToad/PdfPig.git
synced 2026-03-10 00:23:29 +08:00
skip application specific markers when parsing jpg headers
This commit is contained in:
@@ -29,17 +29,37 @@
|
|||||||
switch (marker)
|
switch (marker)
|
||||||
{
|
{
|
||||||
case JpegMarker.StartOfBaselineDctFrame:
|
case JpegMarker.StartOfBaselineDctFrame:
|
||||||
{
|
|
||||||
// ReSharper disable once UnusedVariable
|
|
||||||
var length = ReadShort(stream, shortBuffer);
|
|
||||||
var bpp = stream.ReadByte();
|
|
||||||
var height = ReadShort(stream, shortBuffer);
|
|
||||||
var width = ReadShort(stream, shortBuffer);
|
|
||||||
|
|
||||||
return new JpegInformation(width, height, bpp);
|
|
||||||
}
|
|
||||||
case JpegMarker.StartOfProgressiveDctFrame:
|
case JpegMarker.StartOfProgressiveDctFrame:
|
||||||
break;
|
{
|
||||||
|
// ReSharper disable once UnusedVariable
|
||||||
|
var length = ReadShort(stream, shortBuffer);
|
||||||
|
var bpp = stream.ReadByte();
|
||||||
|
var height = ReadShort(stream, shortBuffer);
|
||||||
|
var width = ReadShort(stream, shortBuffer);
|
||||||
|
|
||||||
|
return new JpegInformation(width, height, bpp);
|
||||||
|
}
|
||||||
|
case JpegMarker.ApplicationSpecific0:
|
||||||
|
case JpegMarker.ApplicationSpecific1:
|
||||||
|
case JpegMarker.ApplicationSpecific2:
|
||||||
|
case JpegMarker.ApplicationSpecific3:
|
||||||
|
case JpegMarker.ApplicationSpecific4:
|
||||||
|
case JpegMarker.ApplicationSpecific5:
|
||||||
|
case JpegMarker.ApplicationSpecific6:
|
||||||
|
case JpegMarker.ApplicationSpecific7:
|
||||||
|
case JpegMarker.ApplicationSpecific8:
|
||||||
|
case JpegMarker.ApplicationSpecific9:
|
||||||
|
case JpegMarker.ApplicationSpecific10:
|
||||||
|
case JpegMarker.ApplicationSpecific11:
|
||||||
|
case JpegMarker.ApplicationSpecific12:
|
||||||
|
case JpegMarker.ApplicationSpecific13:
|
||||||
|
case JpegMarker.ApplicationSpecific14:
|
||||||
|
case JpegMarker.ApplicationSpecific15:
|
||||||
|
{
|
||||||
|
var length = ReadShort(stream, shortBuffer);
|
||||||
|
stream.Seek(length - 2, SeekOrigin.Current);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
marker = (JpegMarker)ReadSegmentMarker(stream, true);
|
marker = (JpegMarker)ReadSegmentMarker(stream, true);
|
||||||
@@ -104,7 +124,7 @@
|
|||||||
throw new InvalidOperationException("Failed to read a short where expected in the JPEG stream.");
|
throw new InvalidOperationException("Failed to read a short where expected in the JPEG stream.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return (short) ((buffer[0] << 8) + buffer[1]);
|
return (short)((buffer[0] << 8) + buffer[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,12 @@
|
|||||||
ApplicationSpecific7 = 0xE7,
|
ApplicationSpecific7 = 0xE7,
|
||||||
ApplicationSpecific8 = 0xE8,
|
ApplicationSpecific8 = 0xE8,
|
||||||
ApplicationSpecific9 = 0xE9,
|
ApplicationSpecific9 = 0xE9,
|
||||||
|
ApplicationSpecific10 = 0xEA,
|
||||||
|
ApplicationSpecific11 = 0xEB,
|
||||||
|
ApplicationSpecific12 = 0xEC,
|
||||||
|
ApplicationSpecific13 = 0xED,
|
||||||
|
ApplicationSpecific14 = 0xEE,
|
||||||
|
ApplicationSpecific15 = 0xEF,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Marks a text comment.
|
/// Marks a text comment.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user