首页 > 编程语言 >视频直播源码,插入图片、删除图片、设置图片大小、提取图片

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

时间:2022-10-09 14:22:35浏览次数:53  
标签:picture docx doc 插入 add 源码 图片大小 图片

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

1.插入图片

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

 


from docx import Document
doc = 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, Inches
doc = 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_ALIGNMENT
doc = 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 basename
from docx import Document, ImagePart
doc = 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'):  # 获取图片id
            part = doc.part.related_parts[img_id]  # 根据图片id获取对应的图片
            if isinstance(part, ImagePart):
                # 保存图片
                with open(basename(part.partname), "wb") as f:
                    f.write(part.blob)、

 

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

 

标签:picture,docx,doc,插入,add,源码,图片大小,图片
From: https://www.cnblogs.com/yunbaomengnan/p/16771963.html

相关文章

  • scrapy爬取网站图片(静态加载)
    1.创建一个scrapy项目scrapystartgprojecttupiancdtupian创建爬虫文件 scrapygenspiderImagewww.com(域名)后续需要更改         开通pip管......
  • spring 源码之 IOC 容器的初始化过程
     学习 spring源码真的是一件痛并快乐的刺激的事。昨天听了别人的视频,任然是一头雾水,层次不一样,就不太容易接受。直接打开spring源码,断点调试,有点难度。于是又捧起书,《深......
  • 一张图片解决 IDEA 所有的乱码问题
    ## IDEA2019.3   找到设置 按照下边配置......
  • JDK 1.8 HashMap 扩容源码详解
     作为开发人员,千万不能停留在实现功能上,一定要提升到性能方面上。这需要我们不断的实践,学习源码, 根据底层实现原理,来做出最好的操作。 就HashMap而言,一定是我们常用的......
  • 要读源码的思想觉悟变化
     这篇文章,介绍自己接触源码的心理变化过程。 ## 万里长征第一步,我要读源码,是为了提升逼格 一个没有实际开发经验的小白,竟然要读源码,说出去恐怕要被笑掉大牙了。 那是......
  • png图片和jpg图片有什么区别
    首先在外观上,没有任何区别。png格式的图片所占存储大小明显大于jpg图片,相比之下jpg格式用于很多场合。png格式图片可进行无损压缩,可以在PS中重新编辑;jpg格式图片会牺牲图......
  • java在图片上绘制框框
    /***画缺陷框的图片文件*@paramfile{@linkFile}*@parampolygon缺陷框*@return带缺陷的文件*@throwsIOExceptionIO异常*......
  • 绝对实用的功能,如何收藏网页图片?
    大家在上网浏览网页的过程中有没有收藏过网页上图片的经历呢?而大家是如何保存这些图片的呢?恐怕就是使用浏览器的“保存该图片”的功能了吧。今天给大家介绍一款插件,不需......
  • 基于Django银行取号系统设计与实现-计算机毕业设计源码+LW文档
    摘 要随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行......
  • 基于Python的大学生提问论坛设计与实现-计算机毕业设计源码+LW文档
    摘 要在各学校的教学过程中,大学生提问论坛是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术......