Zwei Methoden und Effekte:
Methode 1, verwenden Sie die PIL.Image.blend-Methode:
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()
Methode 2: Direkte Pixelüberlagerung:
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()
Die beiden Darstellungen lauten wie folgt:
Erklärung: Die erste Methode kann ein Rechteck einigermaßen gut zeichnen -definierte Formen wie Ellipsen, aber die zweite Möglichkeit bietet eine bessere Möglichkeit, die Form unabhängig zu steuern. Solange die entsprechende Datenformel im Programm bearbeitet wird, können Sie einige gewünschte Umrisse zeichnen.
Kapitel Die beiden Methoden werden durch die erste Methode definiert (
out = image1 * (1.0 - alpha) + image2 * alpha)
Dann denken Sie an die Testtabelle für Farbenblindheit und ein weiteres Bild (ich weiß es nicht). Wie der Name lautet, aber verschiedene Personen auf einem Bild sehen möglicherweise unterschiedliche Dinge.) Ich habe es mir ausgedacht.
Empfohlenes Tutorial: „Python-Tutorial“
Das obige ist der detaillierte Inhalt vonPython 2-Methoden zum Implementieren überlagerter rechteckiger Rahmenebenen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!