두 가지 방법 및 효과:
방법 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!