mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:07:35 +00:00
LibGfx/TIFF: Add support for TileOffset and TileByteCounts
This commit is contained in:
parent
18871e23d7
commit
a30515011a
2 changed files with 20 additions and 4 deletions
|
@ -71,9 +71,25 @@ public:
|
|||
return {};
|
||||
}
|
||||
|
||||
Optional<Vector<u32>> segment_offsets() const
|
||||
{
|
||||
return m_metadata.strip_offsets().has_value() ? m_metadata.strip_offsets() : m_metadata.tile_offsets();
|
||||
}
|
||||
|
||||
Optional<Vector<u32>> segment_byte_counts() const
|
||||
{
|
||||
return m_metadata.strip_byte_counts().has_value() ? m_metadata.strip_byte_counts() : m_metadata.tile_byte_counts();
|
||||
}
|
||||
|
||||
ErrorOr<void> ensure_baseline_tags_are_correct() const
|
||||
{
|
||||
if (m_metadata.strip_offsets()->size() != m_metadata.strip_byte_counts()->size())
|
||||
if (!segment_offsets().has_value())
|
||||
return Error::from_string_literal("TIFFImageDecoderPlugin: Missing Offsets tag");
|
||||
|
||||
if (!segment_byte_counts().has_value())
|
||||
return Error::from_string_literal("TIFFImageDecoderPlugin: Missing ByteCounts tag");
|
||||
|
||||
if (segment_offsets()->size() != segment_byte_counts()->size())
|
||||
return Error::from_string_literal("TIFFImageDecoderPlugin: StripsOffset and StripByteCount have different sizes");
|
||||
|
||||
if (!m_metadata.rows_per_strip().has_value() && m_metadata.strip_byte_counts()->size() != 1)
|
||||
|
|
|
@ -132,11 +132,11 @@ known_tags: List[Tag] = [
|
|||
Tag('266', [TIFFType.UnsignedShort], [1], FillOrder.LeftToRight, "FillOrder", FillOrder),
|
||||
Tag('271', [TIFFType.ASCII], [], None, "Make"),
|
||||
Tag('272', [TIFFType.ASCII], [], None, "Model"),
|
||||
Tag('273', [TIFFType.UnsignedShort, TIFFType.UnsignedLong], [], None, "StripOffsets", is_required=True),
|
||||
Tag('273', [TIFFType.UnsignedShort, TIFFType.UnsignedLong], [], None, "StripOffsets", is_required=False),
|
||||
Tag('274', [TIFFType.UnsignedShort], [1], Orientation.Default, "Orientation", Orientation),
|
||||
Tag('277', [TIFFType.UnsignedShort], [1], None, "SamplesPerPixel", is_required=True),
|
||||
Tag('278', [TIFFType.UnsignedShort, TIFFType.UnsignedLong], [1], None, "RowsPerStrip", is_required=False),
|
||||
Tag('279', [TIFFType.UnsignedShort, TIFFType.UnsignedLong], [], None, "StripByteCounts", is_required=True),
|
||||
Tag('279', [TIFFType.UnsignedShort, TIFFType.UnsignedLong], [], None, "StripByteCounts", is_required=False),
|
||||
Tag('282', [TIFFType.UnsignedRational], [1], None, "XResolution"),
|
||||
Tag('283', [TIFFType.UnsignedRational], [1], None, "YResolution"),
|
||||
Tag('284', [TIFFType.UnsignedShort], [1], PlanarConfiguration.Chunky, "PlanarConfiguration", PlanarConfiguration),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue