Maison > développement back-end > Tutoriel Python > Méthodes Python 2 pour implémenter des couches de cadres rectangulaires superposées

Méthodes Python 2 pour implémenter des couches de cadres rectangulaires superposées

Guanhui
Libérer: 2020-06-18 17:44:32
avant
2470 Les gens l'ont consulté

Méthodes Python 2 pour implémenter des couches de cadres rectangulaires superposées

Deux méthodes et effets :

Méthode 1, utilisez la méthode 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()
Copier après la connexion

Méthode 2 : Superposition directe de pixels :

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()
Copier après la connexion

Les deux rendus sont les suivants :

Explication : La première méthode permet de dessiner un rectangle Certains bien -des formes définies telles que des ellipses, mais la seconde a une meilleure capacité à contrôler la forme indépendamment Tant que la formule de données correspondante est modifiée dans le programme, vous pouvez dessiner les contours souhaités

Chapitre Les deux méthodes ; sont définis par la première méthode (

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

Pensez ensuite à la mire de test de daltonisme et à une autre image (je ne sais pas quel est son nom, mais différentes personnes sur une image peuvent voir des choses différentes.) C'est moi qui l'ai inventé.

Tutoriel recommandé : "Tutoriel Python"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal