>백엔드 개발 >파이썬 튜토리얼 >중첩된 직사각형 프레임 레이어를 구현하는 Python 2 방법

중첩된 직사각형 프레임 레이어를 구현하는 Python 2 방법

Guanhui
Guanhui앞으로
2020-06-18 17:44:322465검색

중첩된 직사각형 프레임 레이어를 구현하는 Python 2 방법

두 가지 방법 및 효과:

방법 1, PIL.Image.blend 방법 사용:

from PIL import Image, ImageDraw
im = Image.open('d:/tmp/58.249.0.220_01_20200604141800866_TIMING.jpg', 'r')
im2 = Image.open('d:/tmp/58.249.0.220_01_20200604141800866_TIMING.jpg', 'r')
draw = ImageDraw.Draw(im2)
draw.rectangle([(1000, 500), (1200, 800)], fill=(255, 0, 0), width=2)
out = Image.blend(im, im2, 0.5)
out.save('d:/tmp/demo1.jpg')
im.close()
im2.close()
out.show()
out.close()

방법 2: 직접 픽셀 오버레이:

from PIL import Image, ImageDraw

im = Image.open('d:/tmp/58.249.0.220_01_20200604141800866_TIMING.jpg', 'r')
b = (255, 0, 0)
opacity = 0.5

for x in range(1000, 1200):
  for y in range(500, 800):
    p = im.getpixel((x, y))
    p = [int(p[i]*(1-opacity) + b[i]*opacity) for i in range(3)]
    im.putpixel((x, y), tuple(p))

im.save('d:/tmp/demo2.jpg')
im.show()
im.close()

두 방법의 효과 다이어그램은 다음과 같습니다.

설명: 첫 번째 유형은 직사각형 및 타원과 같은 일부 정의된 도형을 그릴 수 있지만 두 번째 유형은 해당 데이터 공식을 프로그램에서 편집하는 한 도형을 독립적으로 제어하는 ​​기능이 더 좋습니다. . 원하는 윤곽선이 나옵니다;

두 번째 방법은 첫 번째 방법으로 정의됩니다(

out = image1 * (1.0 - alpha) + image2 * alpha)

그러면 색맹 테스트 차트와 또 다른 그림을 생각해보세요( 이름이 뭔지는 모르겠지만 사진 속 사람마다 다르게 보일 수 있습니다.) 제가 생각해낸 것입니다.

추천 튜토리얼: "Python Tutorial"

위 내용은 중첩된 직사각형 프레임 레이어를 구현하는 Python 2 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제