视频直播源码,插入图片、删除图片、设置图片大小、提取图片
视频直播源码,插入图片、删除图片、设置图片大小、提取图片
1.插入图片
Document对象有一个add_paragraph()方法插入图片,只需要传入路径或者字节流即可,实际上它也是调用段落的Run对象的add_picture()
from docx import Documentdoc = Document()
doc.add_paragraph("在下面插入一张图片")
doc.add_picture("./01.png") # 等同于doc.add_paragraph().add_run().add_picture()
doc.save('./test.docx')
插入的图片被保存为一个type为3的InlineShape对象,InlineShape还有其他常用类型如下
CHART = 12
LINKED_PICTURE = 4
PICTURE = 3
SMART_ART = 15
NOT_IMPLEMENTED = -6
我们可以通过Document对象的inline_shapes()获取所有InlineShape
doc = Document()
doc.add_paragraph("在下面插入一张图片")
doc.add_picture("./01.png")
print(doc.inline_shapes)
print(doc.inline_shapes[0].type) # 图片的type=3
2.删除图片
图片是保存在段落中的,所以我们需要清空有图片的那个段落即可
doc = Document()
doc.add_paragraph("在下面插入一张图片")
doc.add_picture("./01.png")
# 此处是第2个段落有图片
doc.paragraphs[1].clear()
print(doc.inline_shapes)
3.调整图片大小
在插入图片的时候可以顺便指定宽度(width)和高度(height),若都不指定则是原图大小,若只指定了一个则等比缩放,当然宽度和高度属性也可以直接获取和修改。另外,插入的图片默认dpi=72
from docx import Document
from docx.shared import Cm, Inchesdoc = Document()
doc.add_paragraph("在下面插入一张图片")
picture = doc.add_picture("./01.png", width=Cm(5)) # 插入图片时指定大小为5cm
# 查看尺寸
print(picture.width.cm) # 5.0
print(picture.height.cm) # 5.403397222222222
# 修改尺寸
picture.width = Inches(3.6) # 图片宽度改为3.6英尺,但注意是否被拉伸,如果不行被拉伸请自己计算长宽比
picture.width = int(picture.width * 0.50) # 宽度缩放为原来的50%
picture.height = int(picture.height * 0.50) # 高度缩放为原来的50%
doc.save('./test.docx')
4.图片对齐
因为图片是在段落里的,所以我们只需要对所在段落对齐即可
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENTdoc = Document()
doc.add_paragraph("在下面插入一张图片")
picture = doc.add_picture("./01.png")
doc.paragraphs[1].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 居中对齐
# WD_PARAGRAPH_ALIGNMENT.LEFT: 左对齐
# WD_PARAGRAPH_ALIGNMENT.CENTER: 居中对齐
# WD_PARAGRAPH_ALIGNMENT.RIGHT: 右对齐
# WD_PARAGRAPH_ALIGNMENT.JUSTIFY: 两端对齐
# WD_PARAGRAPH_ALIGNMENT.DISTRIBUTE: 分散对齐
doc.save('./test.docx')
5.提取图片
python-docx没有提供提取图片的功能,但part对象提供了related_parts(),我们可以通过这个方法用图片id获取图片,图片id我们可以通过xpath从xlm文档中提取(使用解压软件解压Word文档即可得到xlm文件)。下面的代码仅供参考
from os.path import basenamefrom docx import Document, ImagePartdoc = Document("./test.docx")
for p in doc.paragraphs:images = p._element.xpath('.//pic:pic') # 获取所有图片for image in images:for img_id in image.xpath('.//a:blip/@r:embed'): # 获取图片idpart = doc.part.related_parts[img_id] # 根据图片id获取对应的图片if isinstance(part, ImagePart):# 保存图片with open(basename(part.partname), "wb") as f:f.write(part.blob)、
以上就是 视频直播源码,插入图片、删除图片、设置图片大小、提取图片,更多内容欢迎关注之后的文章
视频直播源码,插入图片、删除图片、设置图片大小、提取图片相关推荐
- 一对一视频直播源码|手机视频直播平台android源码/可打包视频直播
源码介绍 一对一视频直播源码|手机视频直播平台android源码集视频.语音.动态.直播.社交等功能于一身. 前端功能说明: 登入注册:手机验证码登入.编辑个人信息.上传头像 首页直播:查看主播用户. ...
- 短视频直播源码 语音直播原生APP源码
直播APP源码 短视频直播源码 前端:原生APP 安卓端:Java 苹果端:OC 后台:PHP 数据库:Mysql 技术框架:Thinkphp5.1 了解源码内容可私信我. 直播+短视频+带货+ ...
- 视频直播软件开发关于亚马逊s3接入方式,视频直播源码创建存储桶方法
一.登录亚马逊账户,进入S3 建立新的存储桶,用于视频直播源码的文件存储. 注册 Amazon S3 后,您就可以开始使用 AWS 管理控制台 创建存储桶.Amazon S3 中的每个对象都存储在存储 ...
- 一对一视频直播源码实现网络中一对一视频聊天
一对一视频直播源码实现网络中一对一视频聊天 代码实现步骤 概述 首先要通信那就得满足通信的基础,我选择和目标放通信,前提就是我通过一定的条件将自己和目标建立链接,然后再将自己的通信信息交给目标,目标也 ...
- 直播app代码公布:视频直播源码转盘功能的实现
直播中,最重要的是互动,在视频直播源码中,游戏是增强观众和主播的互动的重要功能,下面为大家介绍直播间转盘游戏功能,并介绍其直播app代码实现方式 如上图所示,直播间下部的紫色部分是一个转盘面板,四周的 ...
- 视频直播源码_直播平台搭建_直播程序源码——技术架构解析
一.视频直播源码的技术架构: 直播视频采集SDK(PC/IOS/Anddroid)--直播CDN (直播流分发加速)--直播视频播放器SDK(PC/IOS/Android) 二.视频直播源码中音视频处 ...
- Android视频直播源码开发直播平台、点播播放器哪家强?
Android视频直播源码开发直播平台.点播播放器哪家强? 最近在项目中要加入视频直播和点播功能,那么问题来了,我需要一个播放器来播放视频流,那该如何选择呢?除了原生的VideoView(VideoV ...
- 短视频+直播源码,直播老司机带你飞
短视频+直播源码,直播老司机带你飞 脱胎于视频直播的短视频以近乎疯狂的速度攫取着互联网的流量,当抖音.快手的月活已经足够强大,他们又毫不犹豫地切入了直播腹地. 当互联网竞争进入下半场,依靠互联网人口. ...
- 视频直播源码 直播软件搭建进行直播推流时,对声音进行音质优化
视频直播源码 直播软件搭建进行直播推流时,对声音进行音质优化 最近我们在使用WebRTC进行直播推流的时候,遇到了音乐音质不好的问题,对此进行优化后,音乐音质有很大提升,因此记录下优化过程,分享出来 ...
最新文章
- Andraoid 状态栏透明的方法
- 手机应用:非功能需求 Check List
- 单点登录框架 OpenSSO
- redis分片_5000+字硬核干货!Redis 分布式集群部署实战
- 前端学习(1998)vue之电商管理系统电商系统之实现步骤条和tab栏的数据
- JQUERY在线引用地址
- ubuntu和windows上pip和windows上conda国内源更新module
- ucc编译器(语法解析)
- numpy元素特定条件查找过滤
- 利用mysql5.6 的st_distance 实现按照距离远近排序。 (转载)
- Java高级:面试题-1
- 软件测试面试题:设计系统测试计划需要参考的项目文档?
- f1c100linux系统吗,全志F1C100s怎么样 F1C100s芯片参数介绍
- 河北农大计算机专业全国排名,2019河北农业大学现代科技学院专业排名
- linux系统下一页,linux下一页
- 100以内所有质数的输出。
- 【Unity3D游戏开发】NGUI制作字体的三种方法 (二一)
- AutoRec模型结构详解
- 【学术会议】如何rebuttal学术论文?
- 数据变换,数据规范化的方法之归一化(Min-max规范化)、标准化(Z-score规范化)、小数定标规范化