파이썬에서 언팩 실례 (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")
출력 결과
포인트
다른 함수라도 이름이나 형태가 같은 인수를 취한다면, 같은 사전형의 변수를 사용해 돌릴 수 있다.
공통의 인수를 다양한 함수로 사용하고 싶은 경우, 인수를 클래스화해 랩 함수를 한다고 하는 손이 떠오르지만,
이런 느낌으로 심플하게 구현할 수 있는 것도 기억해 두자.
Reference
이 문제에 관하여(파이썬에서 언팩 실례 (pillow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mickie895/items/dce90dbea3739e865d22
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이미지에 대해 복수의 도형을 쓰고 싶을 때, 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")
출력 결과
포인트
다른 함수라도 이름이나 형태가 같은 인수를 취한다면, 같은 사전형의 변수를 사용해 돌릴 수 있다.
공통의 인수를 다양한 함수로 사용하고 싶은 경우, 인수를 클래스화해 랩 함수를 한다고 하는 손이 떠오르지만,
이런 느낌으로 심플하게 구현할 수 있는 것도 기억해 두자.
Reference
이 문제에 관하여(파이썬에서 언팩 실례 (pillow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mickie895/items/dce90dbea3739e865d22텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)