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中for循环的使用
Apr 14 Python
在Python程序中实现分布式进程的教程
Apr 28 Python
python 网络爬虫初级实现代码
Feb 27 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
python3.4实现邮件发送功能
May 28 Python
python设置随机种子实例讲解
Sep 12 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
Python中__repr__和__str__区别详解
Nov 07 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
python 数据分析实现长宽格式的转换
May 18 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 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判断变量类型常用方法
2012/04/24 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
JS解析XML的实现代码
2009/11/12 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
js实现常用排序算法
2016/08/09 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
python fabric使用笔记
2015/05/09 Python
python fabric实现远程部署
2017/01/05 Python
python读取和保存视频文件
2018/04/16 Python
python脚本实现验证码识别
2018/06/07 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
Python 解析xml文件的示例
2020/09/29 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
体育专业个人的求职信范文
2013/09/21 职场文书
个人自我评价分享
2013/12/20 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
机关搬迁方案
2014/05/18 职场文书
幼师求职自荐信
2014/05/31 职场文书
政协调研汇报材料
2014/08/15 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
Elasticsearch 聚合查询和排序
2022/04/19 Python