码迷,mamicode.com
首页 > 编程语言 > 详细

python叠加矩形框图层

时间:2020-06-15 15:44:07      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:city   imp   save   open   img   控制   src   int   out   

两种方式以及效果:

方式一,使用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()

方式二:直接进行像素叠加:

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叠加矩形框图层

标签:city   imp   save   open   img   控制   src   int   out   

原文地址:https://www.cnblogs.com/TheoryDance/p/13131131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!