视频直播源码,插入图片、删除图片、设置图片大小、提取图片
视频直播源码,插入图片、删除图片、设置图片大小、提取图片
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)、 |
以上就是 视频直播源码,插入图片、删除图片、设置图片大小、提取图片,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-10-09 直播带货源码,商品页面跳转显示白底, 添加渐变动画
2021-10-09 短视频商城源码,顶部标题栏的设置和更改
2021-10-09 直播源码搭建教程之获取相册中的指定一个图片后上传