Browse Source
Merge pull request #2483 from SixLabors/bp/Issue2451
Tiff: ccitt compression, fix for issue #2451
pull/2488/head
James Jackson-South
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
18 additions and
2 deletions
-
src/ImageSharp/Formats/Tiff/Compression/Decompressors/T6BitReader.cs
|
|
|
@ -125,13 +125,29 @@ internal sealed class T6BitReader : T4BitReader |
|
|
|
if (value == Len7Code0000000.Code) |
|
|
|
{ |
|
|
|
this.Code = Len7Code0000000; |
|
|
|
return false; |
|
|
|
|
|
|
|
// We do not support Extensions1D codes, but some encoders (scanner from epson) write a premature EOL code,
|
|
|
|
// which at this point cannot be distinguished from the marker, because we read the data bit by bit.
|
|
|
|
// Read the next 5 bit, if its a EOL code return true, indicating its the end of the image.
|
|
|
|
if (this.ReadValue(5) == 1) |
|
|
|
{ |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
throw new NotSupportedException("ccitt extensions 1D codes are not supported."); |
|
|
|
} |
|
|
|
|
|
|
|
if (value == Len7Code0000001.Code) |
|
|
|
{ |
|
|
|
this.Code = Len7Code0000001; |
|
|
|
return false; |
|
|
|
|
|
|
|
// Same as above, we do not support Extensions2D codes, but it could be a EOL instead.
|
|
|
|
if (this.ReadValue(5) == 1) |
|
|
|
{ |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
throw new NotSupportedException("ccitt extensions 2D codes are not supported."); |
|
|
|
} |
|
|
|
|
|
|
|
if (value == Len7Code0000011.Code) |
|
|
|
|