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开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
tensorflow实现简单的卷积神经网络
May 24 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
Python之时间和日期使用小结
Feb 14 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
使用python实现回文数的四种方法小结
Nov 24 Python
详解如何修改python中字典的键和值
Sep 29 Python
Python Tkinter实例——模拟掷骰子
Oct 24 Python
用python批量解压带密码的压缩包
May 31 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生成自定义长度随机字符串的函数分享
2014/05/04 PHP
php计算年龄精准到年月日
2015/11/17 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
php实现微信支付之现金红包
2018/05/30 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
python实现的简单RPG游戏流程实例
2015/06/28 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
利用Python实现kNN算法的代码
2019/08/16 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
高一数学教学反思
2014/02/07 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
python中如何对多变量连续赋值
2021/06/03 Python
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS