视频直播源码,插入图片、删除图片、设置图片大小、提取图片

视频直播源码,插入图片、删除图片、设置图片大小、提取图片

1.插入图片

Document对象有一个add_paragraph()方法插入图片,只需要传入路径或者字节流即可,实际上它也是调用段落的Run对象的add_picture()

 

1
<br>from docx import Document<br>doc = Document()<br>doc.add_paragraph("在下面插入一张图片")<br>doc.add_picture("./01.png")  # 等同于doc.add_paragraph().add_run().add_picture()<br>doc.save('./test.docx')

插入的图片被保存为一个type为3的InlineShape对象,InlineShape还有其他常用类型如下

 

1
<br>CHART = 12<br>LINKED_PICTURE = 4<br>PICTURE = 3<br>SMART_ART = 15<br>NOT_IMPLEMENTED = -6

 

我们可以通过Document对象的inline_shapes()获取所有InlineShape

 

1
<br>doc = Document()<br>doc.add_paragraph("在下面插入一张图片")<br>doc.add_picture("./01.png") <br>print(doc.inline_shapes)<br>print(doc.inline_shapes[0].type)  # 图片的type=3

 

2.删除图片

图片是保存在段落中的,所以我们需要清空有图片的那个段落即可

 

1
<br>doc = Document()<br>doc.add_paragraph("在下面插入一张图片")<br>doc.add_picture("./01.png") <br># 此处是第2个段落有图片<br>doc.paragraphs[1].clear()<br>print(doc.inline_shapes)

 

3.调整图片大小

在插入图片的时候可以顺便指定宽度(width)和高度(height),若都不指定则是原图大小,若只指定了一个则等比缩放,当然宽度和高度属性也可以直接获取和修改。另外,插入的图片默认dpi=72

 

1
<br>from docx import Document<br>from docx.shared import Cm, Inches<br>doc = Document()<br>doc.add_paragraph("在下面插入一张图片")<br>picture = doc.add_picture("./01.png", width=Cm(5))  # 插入图片时指定大小为5cm<br># 查看尺寸<br>print(picture.width.cm)  # 5.0<br>print(picture.height.cm)  # 5.403397222222222<br># 修改尺寸<br>picture.width = Inches(3.6)  # 图片宽度改为3.6英尺,但注意是否被拉伸,如果不行被拉伸请自己计算长宽比<br>picture.width = int(picture.width * 0.50)  # 宽度缩放为原来的50%<br>picture.height = int(picture.height * 0.50)  # 高度缩放为原来的50%<br>doc.save('./test.docx')

 

4.图片对齐

因为图片是在段落里的,所以我们只需要对所在段落对齐即可

 

1
<br>from docx import Document<br>from docx.enum.text import WD_PARAGRAPH_ALIGNMENT<br>doc = Document()<br>doc.add_paragraph("在下面插入一张图片")<br>picture = doc.add_picture("./01.png")<br>doc.paragraphs[1].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 居中对齐<br># WD_PARAGRAPH_ALIGNMENT.LEFT: 左对齐<br># WD_PARAGRAPH_ALIGNMENT.CENTER: 居中对齐<br># WD_PARAGRAPH_ALIGNMENT.RIGHT: 右对齐<br># WD_PARAGRAPH_ALIGNMENT.JUSTIFY: 两端对齐<br># WD_PARAGRAPH_ALIGNMENT.DISTRIBUTE: 分散对齐<br>doc.save('./test.docx')

 

5.提取图片

python-docx没有提供提取图片的功能,但part对象提供了related_parts(),我们可以通过这个方法用图片id获取图片,图片id我们可以通过xpath从xlm文档中提取(使用解压软件解压Word文档即可得到xlm文件)。下面的代码仅供参考

 

1
<br>from os.path import basename<br>from docx import Document, ImagePart<br>doc = Document("./test.docx")<br>for p in doc.paragraphs:<br>    images = p._element.xpath('.//pic:pic')  # 获取所有图片<br>    for image in images:<br>        for img_id in image.xpath('.//a:blip/@r:embed'):  # 获取图片id<br>            part = doc.part.related_parts[img_id]  # 根据图片id获取对应的图片<br>            if isinstance(part, ImagePart):<br>                # 保存图片<br>                with open(basename(part.partname), "wb") as f:<br>                    f.write(part.blob)、

 

以上就是 视频直播源码,插入图片、删除图片、设置图片大小、提取图片,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(400)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-10-09 直播带货源码,商品页面跳转显示白底, 添加渐变动画
2021-10-09 短视频商城源码,顶部标题栏的设置和更改
2021-10-09 直播源码搭建教程之获取相册中的指定一个图片后上传
点击右上角即可分享
微信分享提示