Python叠加矩形框图层2种方法及效果


Posted in Python onJune 18, 2020

两种方式以及效果:

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

两种的效果图都如下:

Python叠加矩形框图层2种方法及效果

说明:第一种可以画矩形椭圆等定义好的一些形状,但是第二种,可以自主控制形状的能力更好,只要将相应的数据公式编辑到程序中,就可以绘制一些想要的轮廓出来;

第二种方式,是受第一种方式的定义(

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

然后联想到色盲测试图、另一种图(不知道叫什么名字,就是一张图里面不同的人,可能看出不同的东西出来)而想出来的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python在多玩图片上下载妹子图的实现代码
Aug 13 Python
python异步任务队列示例
Apr 01 Python
python采集百度百科的方法
Jun 05 Python
深入了解Python数据类型之列表
Jun 24 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python实现的递归神经网络简单示例
Aug 11 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 Python
python防止随意修改类属性的实现方法
Aug 21 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
python中rb含义理解
Jun 18 #Python
python如何输出反斜杠
Jun 18 #Python
python能自学吗
Jun 18 #Python
关于tf.matmul() 和tf.multiply() 的区别说明
Jun 18 #Python
Python正则表达式高级使用方法汇总
Jun 18 #Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 #Python
新手常见Python错误及异常解决处理方案
Jun 18 #Python
You might like
轻松修复Discuz!数据库
2008/05/03 PHP
php猜单词游戏
2015/09/29 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
php实现微信企业转账功能
2018/10/02 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
js 处理URL实用技巧
2010/11/23 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
Python turtle库的画笔控制说明
2020/06/28 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
2014年团支书工作总结
2014/11/14 职场文书
金砖之国观后感
2015/06/11 职场文书
工作后的感想
2015/08/07 职场文书
导游词之南京中山陵
2019/11/27 职场文书
Java基础——Map集合
2022/04/01 Java/Android