Esempio n. 1
0
def test_embedded():
    # This file contains both an embedded and linked png
    psd = PSDImage.load(os.path.join(DATA_PATH, 'placedLayer.psd'))
    link = psd.smart_objects['5a96c404-ab9c-1177-97ef-96ca454b82b7']
    assert link.filename == 'linked-layer.png'
    with open(os.path.join(DATA_PATH, 'linked-layer.png'), 'rb') as f:
        assert link.data == f.read()
Esempio n. 2
0
def test_render_quality(filename):
    psd = PSDImage.load(full_name(filename))
    preview = psd.as_PIL()
    rendered = psd.as_PIL(render=True)
    assert isinstance(preview, Image)
    assert isinstance(rendered, Image)
    preview_hash = imagehash.average_hash(preview)
    rendered_hash = imagehash.average_hash(rendered)
    error_count = np.sum(np.bitwise_xor(preview_hash.hash, rendered_hash.hash))
    error_rate = error_count / float(preview_hash.hash.size)
    assert error_rate <= 0.1
Esempio n. 3
0
def test_mask_data_as_pil(filename):
    psd = PSDImage.load(full_name(filename))
    for layer in psd.descendants():
        if layer.has_mask():
            mask = layer.mask
            if mask.has_box():
                assert mask.as_PIL() is not None
            else:
                assert mask.width == 0 or mask.height == 0
                assert mask.bbox.width == 0 or mask.bbox.height == 0
            assert mask.background_color is not None
            assert not mask.disabled
Esempio n. 4
0
def test_mask_data_api():
    psd = PSDImage.load(full_name('layer_mask_data.psd'))
    layer = psd.layers[0]
    assert layer.has_mask()
    mask = layer.mask
    assert mask.has_real()
    assert mask.top == 146
    assert mask.left == 36
    assert mask.bottom == 186
    assert mask.right == 170
    assert mask.background_color == 255
    assert mask.relative_to_layer == False
    assert mask.disabled == False
    assert mask.inverted == False
    assert mask.user_mask_from_render == True
    assert mask.parameters_applied == True
    assert mask.parameters
    assert mask.real_flags
Esempio n. 5
0
 def __init__(self):
     
     
     self.special_file = open("teste.psd", 'rb')
     
     self.resource_list = []
     
     
     list_hex = self.special_file.read()
        
     t  = self.special_file.readline(100)
     #t_u = binascii.hexlify(t)
     #t = int(t_u, 16)
     ''''c = 0
     for a in list_hex:
         print a.encode("hex")
         if c == 50:
             break
         c += 1
         pass'''
     
     
     
         
            
     self.file_analyse = PSDImage.load("teste.psd")
    
     self.resource_ids_maker()
     
     
     self.extract_header(list_hex)
     lastIndex = self.color_mode(list_hex)
     self.image_resource(list_hex, lastIndex)
     
     
    
     pass 
Esempio n. 6
0
def test_layer_colors(filename, layer_num, point, color, get_color):
    psd = PSDImage.load(full_name(filename))
    layer = psd.layers[layer_num]
    assert color == get_color(layer, point)
Esempio n. 7
0
def test_composite_grayscale(filename, point, color):
    psd = PSDImage.load(full_name(filename))
    assert color == color_PIL(psd, point)
Esempio n. 8
0
def test_composite(filename, point, color, get_color):
    if (get_color == color_pymaging
            and filename == 'background-red-opacity-80.psd'):
        pytest.xfail("Pymaging white-bg removal not implemented")
    psd = PSDImage.load(full_name(filename))
    assert color == get_color(psd, point)
Esempio n. 9
0
def test_generator():
    psd = PSDImage.load(full_name('hidden-groups.psd'))
    assert len([True for layer in psd.layers]) == 3
    assert len([True for layer in psd.descendants()]) == 5
Esempio n. 10
0
def test_generator_with_clip_layers():
    psd = PSDImage.load(full_name('clipping-mask.psd'))
    assert not psd.layers[0].has_clip_layers()
    assert len([True for layer in psd.layers]) == 2
    assert len([True for layer in psd.descendants()]) == 7
    assert len([True for layer in psd.descendants(include_clip=False)]) == 6
Esempio n. 11
0
def test_resource_blocks():
    psd = PSDImage.load(full_name("fill_adjustments.psd"))
    blocks = psd.image_resource_blocks
    assert "version_info" in blocks
Esempio n. 12
0
def effects_psd():
    psd = PSDImage.load(full_name('layer_effects.psd'))
    yield psd
Esempio n. 13
0
def test_layer_merging_pixels(filename, point, color):
    psd = PSDImage.load(full_name(filename))
    merged_image = psd.as_PIL_merged()
    assert color[:3] == merged_image.getpixel(point)[:3]
    assert merged_image.getpixel(point)[3] == 255  # alpha channel
Esempio n. 14
0
def test_layer_colors_grayscale(filename, layer_num, point, color):
    psd = PSDImage.load(full_name(filename))
    layer = psd.layers[layer_num]
    assert color == color_PIL(layer, point)
Esempio n. 15
0
def test_render_clip_layers(filename):
    psd = PSDImage.load(full_name(filename))
    image1 = psd.as_PIL()
    image2 = psd.as_PIL(render=True)
    assert isinstance(image1, Image)
    assert isinstance(image2, Image)
Esempio n. 16
0
def test_thumbnail(filename):
    psd = PSDImage.load(full_name(filename))
    assert psd.thumbnail()
Esempio n. 17
0
def test_composite(filename, point, color, get_color):
    psd = PSDImage.load(full_name(filename))
    assert color == get_color(psd, point)
Esempio n. 18
0
def test_layer_merging_size(filename, point, color):
    psd = PSDImage.load(full_name(filename))
    merged_image = psd.as_PIL_merged()
    assert merged_image.size == psd.as_PIL().size
Esempio n. 19
0
def test_mask_index():
    psd = PSDImage.load(full_name('mask-index.psd'))
    layer = psd.layers[0]
    assert layer.has_mask()
    assert layer._index == 0
Esempio n. 20
0
def test_layer_merging_pixels_transparency(filename, point, color):
    psd = PSDImage.load(full_name(filename))
    merged_image = psd.as_PIL_merged()
    assert color == merged_image.getpixel(point)
Esempio n. 21
0
def test_gradient_descriptor():
    psd = PSDImage.load(full_name('effect-stroke-gradient.psd'))
    assert psd.layers[0].effects[0].gradient.type == b'ClNs'
    assert psd.layers[1].effects[0].gradient.type == b'CstS'