Python批量处理PDF图片详解(插入、压缩、提取、替换、分页、旋转、删除)
目录
一、概述
二、 使用工具
三、Python 在 PDF 中插入图片
3.1 插入图片到现有PDF
3.2 插入图片到新建PDF
3.3 批量插入多张图片到PDF
四、Python 提取 PDF 图片及其元数据
五、Python 替换 PDF 图片
5.1 使用图片替换图片
5.2 使用文字替换图片
六、Python 实现 PDF 图片分页布局
七、Python 设置 PDF 图片透明度与旋转
八、Python 压缩 PDF 图片
九、Python 删除 PDF 图片
一、概述
图片是 PDF 文档的核心元素之一,它们不仅能够增强文档的视觉吸引力,还能有效传达信息,帮助读者更好地理解内容和主题。在实际操作中,我们常需要对PDF中的图片进行多种处理,包括插入、提取、替换、旋转、分页、压缩、删除等。通过Python编程实现这些操作的自动化,不仅可以提升工作效率,还能减少人为错误率,特别适用于大批量文档处理的场景。这篇文章将详细介绍如何使用Python在PDF中实现图片插入、提取、替换、压缩、分页、旋转和删除等操作。
二、 使用工具
要在Python中实现PDF图片处理,需要一个合适的PDF处理库。本文将使用Spire.PDF for Python,该库主要用于在Python应用程序中创建、读取、转换和编辑PDF文档。
安装 Spire.PDF
在开始之前,需要先安装 Spire.PDF 库。你可以在终端中运行以下命令进行安装:
pip install spire.pdf
三、Python 在 PDF 中插入图片
插入图片可以分多种场景,例如插入图片到现有PDF,插入图片到新建PDF,批量插入多张图片到PDF等。下面将对这几种场景进行逐一介绍。
3.1 插入图片到现有PDF
实现步骤
- 使用PdfDocument类加载现有PDF文档。
- 使用PdfDocument.Pages[index]属性获取要插入图片的目标页面。
- 使用PdfImage.FromFile方法加载图片到PdfImage对象。
- 使用PdfPageBase.Canvas.DrawImage()方法将该图片对象绘制到页面的指定位置。
- 使用PdfDocument.SaveToFile()方法保存结果PDF文档。
实现代码
以下Python代码展示了如何插入一张图片到现有PDF文档:
from spire.pdf import *# 打开现有PDF文档
pdf = PdfDocument("测试.pdf")# 获取第一页
page = pdf.Pages[0]# 加载图片
image = PdfImage.FromFile("C:/Users/Administrator/Desktop/img.png")# 指定绘制图片的坐标和大小 (如果需要按照原图大小插入,则不指定宽度和高度)
x, y, width, height = 50.0, 50.0, 200.0, 200.0# 在第一页的指定位置绘制图片
page.Canvas.DrawImage(image, x, y, width, height)# 将文档保存为新PDF文件
pdf.SaveToFile("插入图片到现有PDF.pdf", FileFormat.PDF)
pdf.Close()
3.2 插入图片到新建PDF
实现步骤
- 使用PdfDocument类创建一个新的PDF文档。
- 使用PdfDocument.Pages.Add()方法给新建的PDF文档添加一个页面。
- 使用PdfImage.FromFile方法加载图片到PdfImage对象。
- 使用PdfPageBase.Canvas.DrawImage()方法将该图片对象绘制到页面的指定位置。
- 使用PdfDocument.SaveToFile()方法保存结果PDF文档。
实现代码
以下Python代码展示了如何新建一个PDF文档并插入一张图片:
from spire.pdf import *# 创建PDF文档
pdf = PdfDocument()# 添加页面
page = pdf.Pages.Add()# 加载图片
image = PdfImage.FromFile("C:/Users/Administrator/Desktop/img.png")# 指定绘制图片的坐标和大小
x, y, width, height = 10.0, 50.0, 200.0, 100.0# 在第一页的指定位置绘制图片 (如果需要按照原图大小插入,则不指定宽度和高度)
page.Canvas.DrawImage(image, x, y, width, height)# 保存修改后的文档
pdf.SaveToFile("插入图片到新建PDF.pdf", FileFormat.PDF)
pdf.Close()
3.3 批量插入多张图片到PDF
实现步骤
批量插入图片到PDF需要遍历图片列表,然后依次将它们绘制到PDF页面上。实现步骤与上面的步骤类似,这里不再详细描述。
实现代码
以下Python代码展示了如何批量插入多张图片到一个新的PDF文档:
from spire.pdf import *def batch_insert_images(image_paths, positions):# 创建新的PDF文档pdf = PdfDocument()# 遍历图片文件列表for img_path, pos in zip(image_paths, positions):# 添加新页面page = pdf.Pages.Add()# 加载图片image = PdfImage.FromFile(img_path)# 在页面上绘制图片到指定位置page.Canvas.DrawImage(image, *pos)# 保存PDF文档pdf.SaveToFile("批量插入图片.pdf", FileFormat.PDF)pdf.Close()# 调用
image_paths = ["C:/Users/Administrator/Desktop/img1.png","C:/Users/Administrator/Desktop/img2.png","C:/Users/Administrator/Desktop/img3.png",
]
positions = [(0, 0), # 第一个图片的位置(0, 0), # 第二个图片的位置(0, 0), # 第三个图片的位置
]batch_insert_images(image_paths, positions)
四、Python 提取 PDF 图片及其元数据
实现步骤
- 使用PdfDocument类加载PDF文档。
- 遍历文档的所有页面。
- 获取当前页面的图片信息集合。
- 遍历页面的图片信息集合。
- 获取每张图片的位置信息和尺寸。
- 将图片保存到指定路径并打印其元数据,如所在页码、图片号、位置、尺寸、保存位置等。
实现代码
以下Python代码展示了如何提取PDF中的图片及其元数据,如尺寸、位置和所在页码:
from spire.pdf import *
import os# 打开现有PDF文档
pdf = PdfDocument("测试.pdf")# 创建保存图片的目录
output_dir = "提取的图片"
os.makedirs(output_dir, exist_ok=True)# 遍历所有页面
for page_index in range(pdf.Pages.Count):page = pdf.Pages[page_index]imageInfo = page.ImagesInfo# 提取页面上的所有图片for i in range(len(imageInfo)):# 获取图片的位置信息和尺寸bounds = imageInfo[i].Boundswidth = bounds.Widthheight = bounds.Height# 构建保存图片的文件路径file_path = os.path.join(output_dir, f"page{page_index + 1}_image_{i + 1}.png")# 保存图片到指定路径imageInfo[i].Image.Save(file_path)# 打印图片的详细信息print({"页面": page_index + 1,"图片": i + 1,"宽度和高度": f"{width}x{height}","位置": (bounds.X, bounds.Y),"保存位置": file_path})# 关闭文档
pdf.Close()
五、Python 替换 PDF 图片
替换PDF图片可以分两种场景,一种是使用新图片替换文档中的图片,另一种是使用文字替换图片。下面将对这两种替换场景进行逐一介绍。
5.1 使用图片替换图片
实现步骤
- 使用PdfDocument类加载PDF文档。
- 使用PdfDocument.Pages[index]属性获取要替换图片的目标页面。
- 使用PdfPageBase.ReplaceImage()方法将页面中的指定图片替换为新图片。使用该方法,替换后的图片将保持原始图片的大小和位置。
- 使用PdfDocument.SaveToFile()方法保存结果PDF文档。
实现代码
以下Python代码展示了如何使用新图片替换PDF中的指定图片:
from spire.pdf import *# 打开现有PDF文档
pdf = PdfDocument("测试.pdf")# 获取第一页
page = pdf.Pages[0]# 加载新图片
new_image = PdfImage.FromFile("C:/Users/Administrator/Desktop/img1.png")# 用新图片替换页面上的第一个图片
page.ReplaceImage(0, new_image)# 保存修改后的文档
pdf.SaveToFile("图片替换图片.pdf")
pdf.Close()
5.2 使用文字替换图片
实现步骤
- 使用PdfDocument类加载PDF文档。
- 使用PdfDocument.Pages[index]属性获取要替换图片的目标页面。
- 使用PdfPageBase.ImagesInfo属性获取页面的图片信息。
- 从图片信息集合中获取第一个图片的图片流数据并将其加载到PdfImage对象。
- 获取图片对象的尺寸和坐标位置。
- 将图片从页面中删除。
- 将文字绘制到图片位置。
- 使用PdfDocument.SaveToFile()方法保存结果文档。
实现代码:
from spire.pdf import *# 打开现有PDF文档
pdf = PdfDocument("测试.pdf")# 获取PDF第一页
page = pdf.Pages[0]# 从页面获取图片信息
imageInfo = page.ImagesInfo# 提取页面中的第一个图片
image = PdfImage.FromStream(imageInfo[0].Image)# 获取图片的尺寸(单位为像素)
widthInPixel = image.Width
heightInPixel = image.Height# 将像素值转换为磅值
convertor = PdfUnitConvertor()
width = convertor.ConvertFromPixels(float(widthInPixel), PdfGraphicsUnit.Point)
height = convertor.ConvertFromPixels(float(heightInPixel), PdfGraphicsUnit.Point)# 获取图片的坐标
x = imageInfo[0].Bounds.X
y = imageInfo[0].Bounds.Y# 从页面删除图片
page.DeleteImage(0)# 指定绘制文字的矩形区域(与图片的位置和尺寸相同)
rect = RectangleF(PointF(x, y), SizeF(width, height))# 设置文本对齐方式
strformat = PdfStringFormat()
strformat.Alignment = PdfTextAlignment.Center
strformat.LineAlignment = PdfVerticalAlignment.Middle# 将文字绘制到图片位置
page.Canvas.DrawString("替换文本", PdfFont(PdfFontFamily.Helvetica, 18.0), PdfBrushes.get_Purple(), rect, strformat)# 保存修改后的PDF
pdf.SaveToFile("文字替换图片.pdf")
pdf.Close()
六、Python 实现 PDF 图片分页布局
实现步骤
在将图片插入PDF页面时,可能会遇到图片太大,一张页面显示不完的情况。这种情况下,就需要将显示不完的部分绘制到下一页,以确保其完全可见。具体实现步骤如下:
- 使用PdfDocument类新建一个PDF文档。
- 向文档中添加一页。
- 使用PdfTextLayout类设置分页布局。
- 使用PdfImage.Draw()方法,以分页布局在页面上绘制图片。
- 使用PdfDocument.SaveToFile()方法保存结果PDF文档。
示例代码
以下Python代码展示了如何添加一张大图片到PDF并使其分页显示:
from spire.pdf import *# 创建PDF文档
pdf = PdfDocument()# 添加页面
page = pdf.Pages.Add()# 加载图片
image = PdfImage.FromFile("img.png")# 设置布局选项,使图片分页
format = PdfTextLayout()
format.Break = PdfLayoutBreakType.FitPage
format.Layout = PdfLayoutType.Paginate# 使用分页布局在页面上绘制图片
image.Draw(page, 20.0, 600.0, format)# 保存PDF文档
pdf.SaveToFile("图片分页.pdf")
pdf.Close()
七、Python 设置 PDF 图片透明度与旋转
实现步骤
- 使用PdfDocument类新建一个PDF文档。
- 使用PdfDocument.Pages.Add()方法向文档中添加一页。
- 使用PdfPageBase.Canvas.Save()方法保存页面画布的初始状态。
- 使用PdfPageBase.Canvas.SetTransparency()方法对页面画布应用透明度。
- 使用PdfPageBase.Canvas.RotateTransform()方法将页面的坐标系移动到绘制图片的位置并旋转特定角度。
- 使用PdfImage.FromFile方法加载图片到PdfImage对象。
- 使用PdfPageBase.Canvas.DrawImage()方法将该图片对象绘制到页面的指定位置。
- 使用PdfPageBase.Canvas.Restore()方法恢复页面画布的状态。
- 使用PdfDocument.SaveToFile()方法保存结果PDF文档。
实现代码
以下Python代码展示了如何在PDF中设置图片的透明度与旋转角度:
from spire.pdf.common import *
from spire.pdf import *# 创建PDF文档
pdf = PdfDocument()# 添加页面
page = pdf.Pages.Add()# 指定绘制图片的位置和尺寸
x, y, width, height = 50.0, 200.0, 200.0, 100.0# 保存页面画布的状态
state = page.Canvas.Save()# 对页面画布应用透明度
page.Canvas.SetTransparency(0.5)# 将坐标系移动到绘制图片的特定坐标,并将页面画布逆时针旋转45度
page.Canvas.RotateTransform(-45.0, PointF(x, y))# 加载图片
image = PdfImage.FromFile("C:/Users/Administrator/Desktop/img.png")# 在页面的指定位置绘制图片
page.Canvas.DrawImage(image, x, y, width, height)# 恢复页面画布的状态
page.Canvas.Restore(state)# 保存PDF文档
pdf.SaveToFile("设置图片透明度与旋转.pdf")
pdf.Close()
八、Python 压缩 PDF 图片
实现步骤
- 使用PdfCompressor类打开PDF文档。
- 设置图片压缩选项。
- 使用PdfCompressor.CompressToFile()方法压缩PDF并保存。
示例代码
以下Python代码展示了如何压缩PDF文档中的图片:
from spire.pdf import *# 使用PdfCompressor类打开现有PDF
compressor = PdfCompressor("测试.pdf")# 设置图片压缩选项
compression_options = compressor.OptimizationOptions
compression_options.SetImageQuality(ImageQuality.Low)
compression_options.SetResizeImages(True)
compression_options.SetIsCompressImage(True)# 压缩PDF文件中的图片,并将结果保存到新文件
compressor.CompressToFile("压缩图片.pdf")
九、Python 删除 PDF 图片
实现步骤
- 使用PdfDocument类打开PDF文档。
- 遍历文档中的所有页面。
- 使用PdfPageBase.ImagesInfo属性获取当前页面的图片信息集合。
- 遍历集合中的所有图片。
- 使用PdfPageBase.DeleteImage()方法将当前图片从页面上删除。
- 使用Pdf.SaveToFile()方法保存修改后的PDF文档。
示例代码
以下Python代码展示了如何删除PDF文档中的图片:
from spire.pdf import *# 打开现有PDF文档
pdf = PdfDocument("example.pdf")# 遍历所有页面
for page_index in range(pdf.Pages.Count):page = pdf.Pages[page_index]imageInfo = page.ImagesInfo# 删除页面上的所有图片for i in range(len(imageInfo) - 1, -1, -1):page.DeleteImage(imageInfo[i])# 保存文档
pdf.SaveToFile("删除图片.pdf")
pdf.Close()
以上就是使用Python处理PDF图片的所有内容。感谢阅读!
相关文章:
Python批量处理PDF图片详解(插入、压缩、提取、替换、分页、旋转、删除)
目录 一、概述 二、 使用工具 三、Python 在 PDF 中插入图片 3.1 插入图片到现有PDF 3.2 插入图片到新建PDF 3.3 批量插入多张图片到PDF 四、Python 提取 PDF 图片及其元数据 五、Python 替换 PDF 图片 5.1 使用图片替换图片 5.2 使用文字替换图片 六、Python 实现 …...
计算机网络分层模型:架构与原理
前言 计算机网络通过不同的层次结构来实现通信和数据传输,这种分层设计不仅使得网络更加模块化和灵活,也使得不同类型的通信能够顺利进行。在网络协议和通信体系中,最广为人知的分层模型有 OSI模型 和 TCP/IP模型。这两种模型分别定义了计算…...
算法-mysql笔记
寻找用户推荐人 mysql判断数据是空 IS null 非空 IS NOT null 584. 寻找用户推荐人 - 力扣(LeetCode) # Write your MySQL query statement below SELECTname FROMCustomer WHEREreferee_id ! 2 OR referee_id IS null 文章概览 当查询到有多…...
销售易CRM:技术架构与安全性能的深度解析
一、技术架构:云计算与微服务的完美结合 销售易CRM基于云计算架构,采用微服务设计理念,确保系统的高可用性和扩展性。这种架构不仅提高了系统的性能和稳定性,还为企业提供了灵活的定制化能力。 云计算架构的优势 高可用性&…...
Python用户管理系统深度解析(附源码):从类设计到安全实现的完整指南
目录 一、核心类结构全解 1.1 类定义与属性设计 代码解析: 二、注册功能代码逐行解析 2.1 用户名验证模块 功能实现: 2.2 密码设置流程 关键机制: 2.3 数据存储实现 文件操作要点: 三、登录安全机制全剖析 3.1 黑名单…...
【linux】使用LNMP环境+Discuz论坛源程序
我使用的版本是linux9.3、Discuz X3.5、nginx1.20、mariadb10.5、php8.0 整体结构 LNMP Linux Nginx mariadb PHP Nginx 最初于2004年10月4日为俄罗斯知名门户站点而开发的Nginx是一款轻量级的网站服务软件,因其稳定性和丰富的功能而深受信赖特点:…...
鸿蒙开发-动画
1. 动画-动画特效 // 定义接口 (每个列表项的数据结构) interface ImageCount {url: stringcount: number }// 需求1: 遮罩层显隐 透明度opacity 0-1 层级zIndex -1~99 // 需求2: 图片缩放 缩放scale 0-1Entry Component struct Index {// 基于接口, 准备数据State images…...
itext7 html2pdf 将html文本转为pdf
1、将html转为pdf需求分析 经常会看到爬虫有这样的需求,将某一个网站上的数据,获取到了以后,进行分析,然后将需要的数据进行存储,也有将html转为pdf进行存储,作为原始存档,当然这里看具体的需求…...
设计模式:模板模式 - 固定流程与灵活扩展的完美结合
一、为什么使用模板模式? 权限校验、数据处理、用例设计等流程虽然遵循固定步骤,但每个具体实现却总有不同。如果没有合适的设计,重复代码会堆积,导致系统复杂度增加,维护成本上升。那如何解决这个问题,让…...
Java 设计模式:组合模式详解
Java 设计模式:组合模式详解 组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组织成树形结构,以统一的方式处理单个对象和对象集合。组合模式适用于需要表示“部分-整体”层次结构的场景,例…...
使用命令打开电脑的[服务]窗口
1.首先打开[开始],找到[运行], 2.或者用快捷命令“windows键R键”命令打开运行, 3.然后输入命令“services.msc”, 4.点[确定]就可以进入电脑的[服务]窗口了...
语音识别——根据声波能量、VAD 和 频谱分析周围是否有人说话
语音活动检测(Voice Activity Detection,简称VAD)。简单来说,VAD就是用来判断一段音频里有没有人说话的技术。在实时语音识别的场景里,这个技术特别重要,因为它决定了什么时候把采集到的音频数据扔进大模型…...
C++算法优化实战:破解性能瓶颈,提升程序效率
C算法优化实战:破解性能瓶颈,提升程序效率 在现代软件开发中,算法优化是提升程序性能的关键手段之一。无论是在高频交易系统、实时游戏引擎,还是大数据处理平台,算法的高效性直接关系到整体系统的性能与响应速度。C作…...
阿里滑块 231 231纯算 水果滑块 拼图 1688滑块 某宝 大麦滑块 阿里231 验证码
声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! # 欢迎交流 wjxch1004...
vs code Cline 编程接入Claude 3.7的经济方案,且保持原生接口能力
在当今快速发展的科技时代,自动化编程成为提高工作效率的重要手段。Cline AI自动编程工具,凭借其强大的智能算法,能够快速生成高质量的代码,帮助开发者节省大量的时间和精力。从简单的脚本到复杂的应用程序,Cline都能轻…...
kubectl命令补全以及oc命令补全
kubectl命令补全 1.安装bash-completion 如果你用的是Bash(默认情况下是),先安装补全功能支持包 sudo apt update sudo apt install bash-completion -y2.为kubectl 启用补全功能 会话中临时: source <(kubectl completion bash)持久化配置&#x…...
css解决边框四个角有颜色
效果 html <div class"gradient-corner">2021年</div>css background:/* 左上角横线 */linear-gradient(90deg, rgb(5, 150, 247) 9px, transparent 0) 0 0,/* 左上角竖线 */linear-gradient(0deg, rgb(5, 150, 247) 9px, transparent 0) 0 0,/* 右上…...
快速入手K8s+Docker+KubeSphere+DevOps
引用:云原生Java架构师的第一课K8sDockerKubeSphereDevOps_哔哩哔哩_bilibili 学习K8sDockerKubeSphereDevOps的可以学习该视频...
Spark-SQL核心编程
DataFrame 创建 DataFrame 在 Spark SQL 中 SparkSession 是创建 DataFrame 和执行 SQL 的入口,创建 DataFrame 有三种方式:通过 Spark 的数据源进行创建;从一个存在的 RDD 进行转换;还可以从 Hive Table 进行查询返回。 从…...
Go 1.24 新方法:编写性能测试用例方法 testing.B.Loop 介绍
Go 开发者在使用 testing包编写基准测试用例时,如果不注意,可能会遇到各种陷阱。这些陷阱,导致基准测试结果不准确。Go1.24 版本引入了一种新的基准测试编写方式,它同样易用,并且可以帮助规避编写基准测试时的一些坑。…...
【神经网络结构的组成】深入理解 转置卷积与转置卷积核
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀《深度学习理论直觉三十讲》_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 …...
GpuGeek:重构AI算力基础设施,赋能产业智能升级
在数字经济与实体经济深度融合的今天,人工智能已成为推动产业变革的核心驱动力。作为AI技术落地的关键支撑,算力基础设施正经历从"资源供给"向"服务赋能"的范式转变。GpuGeek凭借创新的技术架构和运营模式,重新定义了AI算…...
(2025亲测可用)Chatbox多端一键配置Claude/GPT/DeepSeek-网页端配置
1. 资源准备 API Key:此项配置填写在一步API官网创建API令牌,一键直达API令牌创建页面创建API令牌步骤请参考API Key的获取和使用API Host:此项配置填写https://yibuapi.com/v1查看支持的模型请参考这篇教程模型在线查询 2. ChatBox网页版配…...
质变科技发布自主数据分析MCP Server
2025年4月9日,质变科技正式发布Relyt AI MCP(Model Context Protocol),结合Relyt AI 在自主数据分析领域的前沿积累与MCP的开放连接能力,我们为用户带来了一个更智能、更灵活的数据交互生态系统。这一发布不仅拓展了Re…...
【17】Strongswan bus详解2
add_listener: (1)初始化一个entry,并将要添加的listener赋值entry。 (2)添加到bus的listeners链表的尾部。 remove_listener: (1)遍历listeners,通过内存位置…...
【Windows】系统安全移除移动存储设备指南:告别「设备被占用」弹窗
Windows系统安全移除移动存储设备指南:告别「设备被占用」弹窗 解决移动硬盘和U盘正在被占用无法弹出 一、问题背景 使用Windows系统时,经常遇到移动硬盘/U盘弹出失败提示「设备正在使用中」,即使已关闭所有可见程序。本文将系统梳理已验证…...
DeepSeek 与开源:肥沃土壤孕育 AI 硕果
当 DeepSeek 以低成本推理、多模态能力惊艳全球时,人们惊叹于国产AI技术的「爆发力」,却鲜少有人追问:这份爆发力的根基何在? 答案,藏在中国开源生态二十余年的积淀中。 从倪光南院士呼吁「以开源打破垄断」…...
[从零开始学数据库] 基本SQL
注意我们的主机就是我们的Mysql数据库服务器 这里我们可以用多个库 SQL分类(核心是字段的CRUD)  重点是我…...
uniapp开发android原生插件-java版本
一、uniapp官方文档 uni原生插件文档 二、开发流程 1、检测本地uniapp的版本号 2、根据版本号,下载uni提供的对应android的sdk对应demo 下载地址:Android 离线SDK - 正式版 | uni小程序SDK 下载文件后,复制出UniPlugin-Hello-ASÿ…...
git在IDEA中使用技巧
git在IDEA中使用技巧 merge和rebase 参考:IDEA小技巧-Git的使用 git回滚、强推、代码找回 参考:https://www.bilibili.com/video/BV1Wa411a7Ek?spm_id_from333.788.videopod.sections&vd_source2f73252e51731cad48853e9c70337d8e cherry pick …...
DeepSeek 接入 Excel 完整教程
一、前期准备 1.1 获取 DeepSeek API 密钥 注册 DeepSeek 平台 访问 DeepSeek 官方网站(或指定的 API 服务平台,如硅基流动等)。若尚未注册,按照平台指引创建新账号并完成登录。 创建 API 密钥 进入用户控制面板,找到…...
【项目管理】第15章 项目风险管理-- 知识点整理
项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 第6章 项目管理概论 4分第13章 项目资源管理 3-4分第7章 项目…...
如何将自己的项目推送到GitHub上面去
将项目推送到GitHub的流程总结 以下是将本地项目推送到GitHub仓库的完整流程: 1. 初始化Git仓库(如果尚未初始化) cd 项目目录 git init2. 配置远程仓库 # 添加远程仓库地址 git remote add origin https://github.com/用户名/仓库名.git…...
C/C++基础
C开发环境 纯语言开发要求:CIDE。 极简C/C 语法规则 仅记原始规则,把握编程的本质,不做孔乙己,要做说干就干的平头哥。 原始的规则: 各“语法单位”(组成部分)使用任意个(至少1个…...
Qt炫酷仪表盘
Qt学习优化的一款汽车仪表控件,根据github上面开源的进行优化,主要使用QPainter实现的一款炫酷仪表盘,其中的渐变效果比较有感觉 实现结果 仪表盘 实现源码 h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPixmap> #include <QTimer&…...
云渗透一(云租户渗透⼊⻔)
云平台介绍 阿⾥云 阿⾥云创⽴于 2009 年,服务着制造、⾦融、政务、交通、医疗、电信、能源等众多领域的领军企业,包 括中国联通、12306 、中⽯化、中⽯油、⻜利浦、华⼤基因等⼤型企业客户,以及微博、知乎、锤⼦科技 等明星互联⽹公司。 应⽤程序访问令牌 - T1527 云实例…...
R绘图|6种NMDS(非度量多维分析)绘图保姆级模板——NMDS从原理到绘图,看师兄这篇教程就够了
感谢西农听雨同学对本文提供的大力支持! 一、引言 非度量多维尺度分析(NMDS)是一种用来简化复杂数据的工具,特别适合处理那些难以直接理解的高维数据(微生物群落数据)。它的主要目的是把数据“压缩”到更低…...
spark-SQL核心编程
1. Spark-SQL简介 起源与发展:Spark-SQL前身为Shark,因对Hive依赖制约Spark发展而被弃用。它汲取Shark优点重新开发,在数据兼容、性能优化和组件扩展方面表现出色。 特点:易整合,统一数据访问,兼容Hive&…...
使用MCP服务通过自然语言操作数据库(vscode+cline版本)
使用MCP服务操纵数据库(vscodecline版本) 本文主要介绍,在vscode中使用cline插件调用deepseek模型,通过MCP服务器 使用自然语言去操作指定数据库。本文使用的是以己经创建号的珠海航展数据库。 理解MCP服务: MCP(Model Context…...
.NET Core DI(依赖注入)的生命周期及应用场景
在.NET中,依赖注入(DI,Dependency Injection)是一种设计模式,它通过将依赖关系注入到类中,而不是让类自己创建依赖项,来降低类之间的耦合度。这使得代码更加模块化、灵活和易于测试。在.NET中&a…...
VSCode写java时常用的快捷键
首先得先安好java插件 1、获取返回值 这里是和idea一样的快捷键的,都是xxxx.var 比如现在我new一个对象 就输入 new MbDo().var // 点击回车即可变成下面的// MbDo mbDo new MbDo()//以此类推get方法也可获取 mbDo.getMc().var // 点击回车即可变成下面的 // St…...
Java微服务流量控制与保护技术全解析:负载均衡、线程隔离与三大限流算法
在微服务架构中,流量控制与系统保护是保障服务高可用的核心要素。本文将深入剖析负载均衡原理、线程隔离机制,并通过Java代码实例详解滑动窗口、漏桶、令牌桶三大限流算法,帮助开发者构建健壮的分布式系统。 一、负载均衡核心原理与实践 1.1 …...
Java 企业级应用:SOA 与微服务的对比与选择
企业级应用开发中,架构设计是决定系统可扩展性、可维护性和性能的关键因素。SOA(面向服务的架构)和微服务架构是两种主流的架构模式,它们各自有着独特的和设计理念适用场景。本文将深入探讨 SOA 和微服务架构的对比,并…...
Nacos深度剖析与实践应用 -1
📹 Nacos背景 在现在数字化快速发展的时代🚄,微服务架构已成为构建大型分布式系统的主流架构模式。随着微服务数量的不断增加,服务之间的通信、配置管理以及服务的高可用性等问题变得愈发复杂。Nacos 作为阿里巴巴开源的一个动态服…...
WinForm真入门(16)——LinkLabel 控件详解
以下是 WinForm 中 LinkLabel 控件的基本概念、核心属性、事件及典型应用案例的总结: 一、基本概念 LinkLabel 是 WinForm 中用于显示超链接文本的控件,继承自 Label,支持单链接或多链接区域。用户点击链接时可触发自定义行为࿰…...
功能丰富的PDF处理免费软件推荐
软件介绍 今天给大家介绍一款超棒的PDF工具箱,它处理PDF文档的能力超强,而且是完全免费使用的,没有任何限制。 TinyTools(PC)这款软件,下载完成后即可直接打开使用。在使用过程中,操作完毕后&a…...
【MySQL高级】事务,存储引擎,索引(一)
Mysql高级 DQL查询语句 反引号 模糊查询避免%出现在开头,会造成索引失效 order by排序先后 表名列名都需要用${},他们不能带’’ 去重统计数量 null的运算 分组函数会自动忽略null,不用对null进行处理 截取子串substr(字段,下标…...
React 之 Redux 第三十二节 Redux 常用API及HOOKS,以及Redux Toolkit核心API使用详解
一、4.X版本中核心 API 和用途 1. createStore(reducer, [preloadedState], [enhancer]) 用途: 创建 Redux Store(数据仓库) 参数: reducer: 状态更新函数 preloadedState: 初始状态(可选) enhancer: 中间件增强器(如…...
react tailwindcss最简单的开始
参考教程: Install Tailwind CSS with Vite - TailwindCSS中文文档 | TailwindCSS中文网https://www.tailwindcss.cn/docs/guides/vite操作过程: Microsoft Windows [版本 10.0.26100.3476] (c) Microsoft Corporation。保留所有权利。D:\gitee\tailwi…...
波束形成(BF)从算法仿真到工程源码实现-第九节-延迟相减波束形成(delay sub)
一、概述 本节对delay sub算法进行仿真。更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。 二、代码仿真 import numpy as np import soundfile as sf import scipy import matplotlib.pyplot as pltfft…...