Pillow

Форк
0
/
test_imageenhance.py 
61 строка · 1.6 Кб
1
from __future__ import annotations
2

3
import pytest
4

5
from PIL import Image, ImageEnhance
6

7
from .helper import assert_image_equal, hopper
8

9

10
def test_sanity() -> None:
11
    # FIXME: assert_image
12
    # Implicit asserts no exception:
13
    ImageEnhance.Color(hopper()).enhance(0.5)
14
    ImageEnhance.Contrast(hopper()).enhance(0.5)
15
    ImageEnhance.Brightness(hopper()).enhance(0.5)
16
    ImageEnhance.Sharpness(hopper()).enhance(0.5)
17

18

19
def test_crash() -> None:
20
    # crashes on small images
21
    im = Image.new("RGB", (1, 1))
22
    ImageEnhance.Sharpness(im).enhance(0.5)
23

24

25
def _half_transparent_image() -> Image.Image:
26
    # returns an image, half transparent, half solid
27
    im = hopper("RGB")
28

29
    transparent = Image.new("L", im.size, 0)
30
    solid = Image.new("L", (im.size[0] // 2, im.size[1]), 255)
31
    transparent.paste(solid, (0, 0))
32
    im.putalpha(transparent)
33

34
    return im
35

36

37
def _check_alpha(
38
    im: Image.Image, original: Image.Image, op: str, amount: float
39
) -> None:
40
    assert im.getbands() == original.getbands()
41
    assert_image_equal(
42
        im.getchannel("A"),
43
        original.getchannel("A"),
44
        f"Diff on {op}: {amount}",
45
    )
46

47

48
@pytest.mark.parametrize("op", ("Color", "Brightness", "Contrast", "Sharpness"))
49
def test_alpha(op: str) -> None:
50
    # Issue https://github.com/python-pillow/Pillow/issues/899
51
    # Is alpha preserved through image enhancement?
52

53
    original = _half_transparent_image()
54

55
    for amount in [0, 0.5, 1.0]:
56
        _check_alpha(
57
            getattr(ImageEnhance, op)(original).enhance(amount),
58
            original,
59
            op,
60
            amount,
61
        )
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.