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基于列表list实现的CRUD操作功能示例
Jan 05 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
实践Vim配置python开发环境
Jul 02 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
python实现字符串和字典的转换
Sep 29 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
Python通用函数实现数组计算的方法
Jun 13 Python
pytorch打印网络结构的实例
Aug 19 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
Python实现批量自动整理文件
Mar 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 Imagick获取图片RGB颜色值
2014/07/28 PHP
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
符合标准的js表单提交的代码
2007/09/13 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
node中的session的具体使用
2018/09/14 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
跟老齐学Python之重回函数
2014/10/10 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
python dlib人脸识别代码实例
2019/04/04 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
财务会计专业求职信范文
2013/12/31 职场文书
高三体育教学反思
2014/01/29 职场文书
《凡卡》教学反思
2014/04/09 职场文书
商场消防安全责任书
2014/07/29 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python