本文摘自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迭代器的实例详解
Python里pop是什么意思
Python是怎么操作文件和目录的?
使用pip安装Python库的几种常用方法
Python类方法和静态方法的区别
Python如何查找字符串的长度?(代码示例)
如何在网上自学Python?
如何利用Python将byte array转为string
Python怎么创建模块
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python 2种方法实现叠加矩形框图层