파이썬에서 언팩 실례 (pillow)

3967 단어 파이썬pillow

소개



파이썬은 언팩에 의해 사전형을 함수에 나사 삽입할 수 있다.

구체적인 문법 자체는 상기와 같지만, 이것만으로는 고난을 알기 어려웠다.

일하고 있으면 실천례가 머리 속에 내려왔기 때문에 잊지 말고 남겨둔다.

실천 예



이미지에 대해 복수의 도형을 쓰고 싶을 때, C#에서는 Pen을 사용해 같은 폭, 색의 도형을 연속적으로 그릴 수 있었다.
그럼 파이썬(pillow)에서 똑같이 설정을 사용하고 싶을 때는?

→ 언팩을 C#의 Pen 대신에 할 수 있다는 것을 깨달았다

샘플 코드


from PIL import Image, ImageDraw

DEFAULT_BRUSH = {"outline": (0, 255, 0), "width": 5}


def create_canvas():
    return Image.new("RGB", (500, 500), (0, 0, 0))


def paint_brush(target: Image):
    draw = ImageDraw.Draw(target)
    draw.ellipse([(100, 100), (200, 200)], fill=(255, 255, 255), **DEFAULT_BRUSH)
    draw.rectangle([(200, 100), (300, 200)], **DEFAULT_BRUSH)
    return target


if __name__ == '__main__':
    paint_brush(create_canvas()).save("sample.png")

출력 결과





포인트



다른 함수라도 이름이나 형태가 같은 인수를 취한다면, 같은 사전형의 변수를 사용해 돌릴 수 있다.

공통의 인수를 다양한 함수로 사용하고 싶은 경우, 인수를 클래스화해 랩 함수를 한다고 하는 손이 떠오르지만,
이런 느낌으로 심플하게 구현할 수 있는 것도 기억해 두자.

좋은 웹페이지 즐겨찾기