Python 2种方法实现叠加矩形框图层


本文摘自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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...