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实现微信公众平台自定义菜单实例
Mar 20 Python
Python字符串详细介绍
May 09 Python
Python中字典的基础知识归纳小结
Aug 19 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
Python算法应用实战之队列详解
Feb 04 Python
Python编程实现的简单Web服务器示例
Jun 22 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
Oct 30 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 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
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
php数组遍历类与用法示例
2019/05/24 PHP
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
python并发编程之线程实例解析
2017/12/27 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
宠物店的创业计划书范文
2014/01/11 职场文书
入党自我评价优缺点
2014/01/25 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
一年级学生评语大全
2014/04/21 职场文书
承诺函范文
2015/01/21 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
vue elementUI表格控制对应列
2022/04/13 Vue.js