def test_slices_resource(filename):
    decoded = decode_psd(filename)
    for block in decoded.image_resource_blocks:
        if block.resource_id == ImageResourceID.SLICES:
            assert isinstance(block.data, SlicesHeaderV6)
            for item in block.data.items:
                assert isinstance(item, SlicesResourceBlock)
Example #2
0
def test_layer_visibility():
    visible = dict(
        (layer.name, layer.visible)
        for layer in PSDImage(decode_psd('hidden-layer.psd')).layers)
    assert visible['Shape 1']
    assert not visible['Shape 2']
    assert visible['Background']
Example #3
0
def test_groups_without_opening():
    psd = PSDImage(decode_psd('broken-groups.psd'))
    group1, group2 = psd.layers
    assert group1.name == 'bebek'
    assert group2.name == 'anne'

    assert len(group1.layers) == 1
    assert len(group2.layers) == 1

    assert group1.layers[0].name == 'el sol'
    assert group2.layers[0].name == 'kas'
Example #4
0
def test_groups_simple():
    psd = PSDImage(decode_psd('group.psd'))
    assert len(psd.layers) == 2

    group = psd.layers[0]
    assert group.kind == "group"
    assert len(group.layers) == 1
    assert group.name == 'Group 1'
    assert group.closed is False

    group_element = group.layers[0]
    assert group_element.name == 'Shape 1'
Example #5
0
def test_clipping():
    psd = PSDImage(decode_psd('clipping-mask2.psd'))
    assert psd.layers[0].name == 'Group 1'
    layer = psd.layers[0].layers[0]
    assert layer.name == 'Rounded Rectangle 4'
    assert layer.has_clip_layers()
    assert layer.clip_layers[0].name == 'Color Balance 1'
    assert psd.layers[1].name == 'Rounded Rectangle 3'
    assert psd.layers[1].clip_layers[0].name == 'Brightness/Contrast 1'
    assert psd.layers[2].name == 'Polygon 1'
    assert psd.layers[2].clip_layers[0].name == 'Ellipse 1'
    assert psd.layers[2].clip_layers[1].name == 'Rounded Rectangle 2'
    assert psd.layers[2].clip_layers[2].name == 'Rounded Rectangle 1'
    assert psd.layers[2].clip_layers[3].name == 'Color Fill 1'
    assert psd.layers[3].name == 'Background'
Example #6
0
def test_group_visibility():
    psd = PSDImage(decode_psd('hidden-groups.psd'))

    group2, group1, bg = psd.layers
    assert group2.name == 'Group 2'
    assert group1.name == 'Group 1'
    assert bg.name == 'Background'

    assert bg.visible is True
    assert group2.visible is True
    assert group1.visible is False

    assert group2.layers[0].visible is True

    # The flag is 'visible=True', but this layer is hidden
    # because its group is not visible.
    assert group1.layers[0].visible is True
Example #7
0
def test_adjustment_and_shapes():
    psd = PSDImage(decode_psd('adjustment-fillers.psd'))
    for layer in psd.layers:
        if layer.bbox.width:
            assert isinstance(layer.as_PIL(), Image)
        if layer.kind == "adjustment":
            assert layer.adjustment_type
            assert layer.data
        if layer.kind == "shape":
            assert isinstance(layer.get_anchors(), list)
            if layer.has_origination():
                assert layer.origination
            if layer.has_vector_mask():
                vector_mask = layer.vector_mask
                assert vector_mask
                if layer.has_path():
                    assert len(vector_mask.anchors) > 0
            if layer.has_stroke():
                assert layer.stroke
            if layer.has_stroke_content():
                assert layer.stroke_content
Example #8
0
def psd():
    return PSDImage(decode_psd('fill_adjustments.psd'))
Example #9
0
def test_print_tree(filename):
    psd = PSDImage(decode_psd(filename))
    psd.print_tree()
def test_adjustment_and_shapes():
    psd = PSDImage(decode_psd('adjustment-mask.psd'))
    for layer in psd.descendants():
        layer.as_PIL()
        if layer.has_mask():
            layer.mask.as_PIL()
Example #11
0
def test_group_with_empty_layer():
    psd = PSDImage(decode_psd('empty-layer.psd'))
    group1, bg = psd.layers
    assert group1.name == 'group'
    assert bg.name == 'Background'
Example #12
0
def test_no_groups():
    psd = PSDImage(decode_psd('2layers.psd'))
    assert len(psd.layers) == 2
    assert not any(layer.kind == "group" for layer in psd.layers)
Example #13
0
def test_groups_32bit():
    psd = PSDImage(decode_psd('32bit5x5.psd'))
    assert len(psd.layers) == 3
    assert psd.layers[0].name == 'Background copy 2'
Example #14
0
def test_print_tree():
    psd = PSDImage(decode_psd('empty-group.psd'))
    psd.print_tree()