示例#1
0
def test_tagged_blocks():
    blocks = TaggedBlocks([(Tag.LAYER_VERSION,
                            TaggedBlock(key=Tag.LAYER_VERSION,
                                        data=IntegerElement(1)))])
    check_write_read(blocks)
    check_write_read(blocks, version=2)
    check_write_read(blocks, version=2, padding=4)
    display(blocks)
    assert blocks.get_data(Tag.LAYER_VERSION)
    assert blocks.get_data(Tag.LAYER_ID) is None
    assert len([1 for key in blocks if key == Tag.LAYER_VERSION]) == 1
def test_tagged_blocks():
    blocks = TaggedBlocks([(TaggedBlockID.LAYER_VERSION,
                            TaggedBlock(key=TaggedBlockID.LAYER_VERSION,
                                        data=IntegerElement(1)))])
    check_write_read(blocks)
    check_write_read(blocks, version=2)
    check_write_read(blocks, version=2, padding=4)
示例#3
0
def test_layer_record():
    tagged_blocks = TaggedBlocks([
        (TaggedBlockID.LAYER_VERSION, TaggedBlock(key=TaggedBlockID.LAYER_VERSION, data=IntegerElement(0))),
    ])
    check_write_read(LayerRecord())
    check_write_read(LayerRecord(name='foo', tagged_blocks=tagged_blocks))
    check_write_read(LayerRecord(tagged_blocks=tagged_blocks), version=2)
示例#4
0
    def _read_body(cls, fp, encoding, version):
        layer_info = LayerInfo.read(fp, encoding, version)
        global_layer_mask_info = None
        if is_readable(fp):
            global_layer_mask_info = GlobalLayerMaskInfo.read(fp)

        tagged_blocks = None
        if is_readable(fp):
            # For some reason, global tagged blocks aligns 4 byte
            tagged_blocks = TaggedBlocks.read(fp, version=version, padding=4)

        return cls(layer_info, global_layer_mask_info, tagged_blocks)
示例#5
0
 def _read_extra(cls, fp, encoding, version):
     mask_data = MaskData.read(fp)
     blending_ranges = LayerBlendingRanges.read(fp)
     name = read_pascal_string(fp, encoding, padding=4)
     tagged_blocks = TaggedBlocks.read(fp, version=version, padding=1)
     return mask_data, blending_ranges, name, tagged_blocks