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列表append和+的区别浅析
Feb 02 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
Python 操作MySQL详解及实例
Apr 30 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python中django学习心得
Dec 06 Python
python编程培训 python培训靠谱吗
Jan 17 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
Python如何生成xml文件
Jun 04 Python
PyQt5的相对布局管理的实现
Aug 07 Python
python根据字典的键来删除元素的方法
Aug 16 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 结果集的分页实现代码
2009/03/10 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
Vue中计算属性computed的示例解读
2017/07/26 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
Django 拆分model和view的实现方法
2019/08/16 Python
Python3并发写文件与Python对比
2019/11/20 Python
python中pop()函数的语法与实例
2020/12/01 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
党建示范点实施方案
2014/03/12 职场文书
内科护士节演讲稿
2014/09/11 职场文书
辞职信标准格式
2015/02/27 职场文书
公司员工管理制度
2015/08/04 职场文书
Golang解析JSON对象
2022/04/30 Golang