Heim  >  Artikel  >  Backend-Entwicklung  >  Python 2-Methoden zum Implementieren überlagerter rechteckiger Rahmenebenen

Python 2-Methoden zum Implementieren überlagerter rechteckiger Rahmenebenen

Guanhui
Guanhuinach vorne
2020-06-18 17:44:322423Durchsuche

Python 2-Methoden zum Implementieren überlagerter rechteckiger Rahmenebenen

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Details zum Python-DekoratorNächster Artikel:Details zum Python-Dekorator