本文摘自php中文网,作者Guanhui,侵删。

两种方式以及效果:
方式一,使用PIL.Image.blend方式:
1 2 3 4 5 6 7 8 9 10 11 | 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()
|
方式二:直接进行像素叠加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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教程》
以上就是Python 2种方法实现叠加矩形框图层的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python如何导出微信公众号文章
Python里的eval是什么
从此驾驭图表的神器matplotlib,Python强大的作图工具
Python中递归记录指定后缀名的文件示例分享
Python函数中return后的语句执行不?
Python有安卓版吗
Python ord()是什么?ord()有什么用?
Python随机漫步讲解
Python中的super()和__init__()方法有什么用
实例详解Python数据结构之单链表
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python 2种方法实现叠加矩形框图层