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

Guanhui
풀어 주다: 2020-06-18 17:44:32
앞으로
2438명이 탐색했습니다.

중첩된 직사각형 프레임 레이어를 구현하는 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿