PDF素材库转PPT母版:批量提取、去背景与可复用版式工程化实践
简介这份华为PPT素材库为内部培训专题资料面向需要制作网络拓扑图、产品架构图与业务演示文稿的IT从业者、售前工程师及培训讲师帮助解决组网图缺乏标准化图形符号、产品示意不统一的问题。资源包共1个PDF文件大小约2.38MB内容以图形元素与图标说明为主涵盖作图元素、产品示意图标、网络设备图标、拓扑与信令管理符号、衬底与云朵背景、终端类图标、人物元素及卡通业务图标等模块。读者可从中获取CC08、iNET、MA 5100 OLT、SIPP等产品符号以及路由器、信令网关、MSR多业务交换机、ATM交换机、VOIP GW、IAD、MSTP等常见设备的标准化图标并了解反白字、阴影、色块示意等排版技巧。素材颜色与形状已预先搭配可依据组网图色调灵活调整适用于财务数据、市场份额、产品归类与组织结构等内容的可视化表达。目前已有140人学习适合希望提升PPT专业度与信息传达效率的读者参考。1. 一份“培训专题素材库”PDF为什么值得当成工程问题来拆手里拿到一份名为“培训专题-华为ppt素材库(内部资料).pdf”的文件多数人的第一反应是翻两页看看模板好不好看然后丢进硬盘吃灰。但如果你在企业内训、售前方案、技术分享这类场景里长期做交付就会意识到这类素材库真正的价值不在“好看”而在“可复用”——它本质上是一套被压缩进 PDF 的视觉规范与版式资产。问题也随之而来PDF 是只读的、分页的、图片被压过的直接拿来做 PPT 等于每次都要重新描一遍。所以这篇笔记要讲的是怎么把这份素材库从“一份 PDF”还原成“一套能进 PPT 母版、能批量套用的素材资产”包括拆包、提取、去背景、建母版、批量替换这几步。适合经常做内训课件、方案汇报、技术分享的工程师和培训岗尤其是那种“每次做 PPT 都要从零排版”的人。2. 先搞清楚 PDF 里到底装了什么素材库的三种常见结构在动手拆之前得先判断这份 PDF 是哪种“装法”。同样是素材库内部结构不同后面的提取路径完全不一样。我一般会先做一次结构侦察再决定用哪条流水线。2.1 三种典型结构矢量页、位图页、混合页第一种是矢量页。整页由矢量图形和文字对象构成放大不糊这类 PDF 用常规的图形提取工具就能拿到干净的 SVG 或 EMF是最理想的情况。第二种是位图页每一页其实是一张大图可能是扫描件也可能是设计稿导出时被栅格化了这种只能走图像处理路线。第三种是混合页背景是位图、上面叠了矢量文字和图标最常见也最麻烦需要分层处理。判断方法很简单用命令行工具看一眼每页的对象构成# 用 pdfimages 列出所有内嵌图像对象 # -list 只列不导出先侦察 pdfimages -list 培训专题-华为ppt素材库(内部资料).pdf # 输出会给出每页的 num、type、width、height、color、comp、bpc # 如果某页 width/height 接近整页像素尺寸说明这页是整页位图如果pdfimages -list输出里每页只有一两条记录且尺寸接近页面尺寸那基本是位图页如果输出为空或只有零星小图说明主体是矢量走矢量提取。这一步不做后面很可能白忙。2.2 用 pdfimages 和 pdftotext 做一次结构侦察侦察要同时看图像和文字两层。文字层能告诉你这页有没有可编辑文本图像层告诉你视觉资产的密度。# 导出文字层看每页是否有可选中的文本 pdftotext -layout 培训专题-华为ppt素材库(内部资料).pdf probe.txt # 统计每页文本量文本极少的页大概率是纯图形页 awk BEGIN{RS\f} {print NR: length($0) chars} probe.txt-layout参数保留原始排版位置方便判断文字和图形是否分离。如果某页文本量为 0 但pdfimages显示有大图那这页就是纯位图后面必须走 OCR 或直接当图片用。侦察阶段花十分钟能省掉后面几小时的返工。2.3 分辨率与色彩模式决定后续能不能用的硬指标素材能不能直接进 PPT取决于两个硬指标分辨率和色彩模式。PPT 在 1080P 投影下一张全屏图至少需要 1920×1080 像素如果要印刷或大屏得按 300 DPI 反推。色彩模式上印刷走 CMYK屏幕走 RGBPDF 里混用会导致导出后偏色。# 用 pdfimages 实际导出图像-png 保证无损 pdfimages -png -f 1 -l 20 培训专题-华为ppt素材库(内部资料).pdf raw/img # 用 identify 批量看分辨率和色彩空间 identify -format %f %wx%h %[colorspace]\n raw/img-*.png如果发现大量图低于 1280 宽那这套素材只适合做小图标或装饰条不能当全屏背景。色彩空间如果是 CMYK 且你要做屏幕演示后面得批量转 RGB否则 PPT 里颜色会发暗。这两个指标在选型阶段就要确认别等做完母版才发现图不够大。3. 把 PDF 拆成可编辑素材提取、去背景、矢量化侦察完结构进入真正的提取环节。这一步的目标是把 PDF 里的视觉资产变成 PNG、SVG 这类 PPT 能直接吃的格式并且尽量保留透明通道和清晰边缘。3.1 位图素材的无损导出与批量命名位图导出用pdfimages最稳关键是加-png避免二次压缩并且用-f/-l分段处理大文件防止一次性吃满内存。# 分段导出每 50 页一批避免内存爆掉 for start in $(seq 1 50 500); do end$((start 49)) pdfimages -png -f $start -l $end \ 培训专题-华为ppt素材库(内部资料).pdf \ raw/batch_${start} done # 批量重命名按页码序号方便回溯 i0 for f in raw/batch_*.png; do i$((i1)) printf -v new asset_%04d.png $i mv $f assets/$new done-png保证无损-f/-l控制页范围。命名用四位序号是为了后面在 PPT 里批量替换时能按顺序对应。如果直接保留pdfimages默认的img-000-001这种名字几百个文件后根本对不上页码。3.2 用 rembg 批量去背景保留透明通道素材库里大量图标、装饰元素是带白底或杂底的直接放进 PPT 会有一块难看的底色。去背景我一般用rembg它对图标类图像效果稳定且支持批量。# batch_remove_bg.py from rembg import remove from PIL import Image import os src_dir assets dst_dir assets_nobg os.makedirs(dst_dir, exist_okTrue) for name in os.listdir(src_dir): if not name.lower().endswith(.png): continue src_path os.path.join(src_dir, name) dst_path os.path.join(dst_dir, name) with open(src_path, rb) as f: data f.read() # remove 返回带 alpha 通道的 PNG 字节流 out remove(data) with open(dst_path, wb) as f: f.write(out) print(fdone: {name})remove()的核心参数是alpha_matting默认关闭。对边缘要求高的图标可以开alpha_mattingTrue但速度会慢三到五倍。批量处理几百张图时我一般先跑默认参数挑出边缘毛糙的再单独开 alpha matting 重跑。注意去背景只对“主体清晰、背景单一”的图有效复杂背景的整页设计稿不要走这条路会糊成一团。3.3 矢量页转 SVG用 inkscape 命令行保真导出矢量页是宝藏转成 SVG 后可以在 PPT 里无限放大、改色、拆组。命令行用 Inkscape 最顺手。# 单页 PDF 转 SVG--pdf-page 指定页码 inkscape --pdf-page3 \ --export-typesvg \ --export-filenamevector/page_003.svg \ 培训专题-华为ppt素材库(内部资料).pdf # 批量先拆成单页 PDF再逐页转 pdftk 培训专题-华为ppt素材库(内部资料).pdf burst output page_%03d.pdf for f in page_*.pdf; do inkscape --export-typesvg \ --export-filenamevector/${f%.pdf}.svg $f done--pdf-page指定页码--export-typesvg输出矢量格式。如果 Inkscape 报字体缺失说明原 PDF 用了未嵌入的字体转出来的 SVG 文字会变路径或丢失这时候要么补字体要么接受文字转曲。转曲后的 SVG 在 PPT 里不能改字但形状绝对保真做装饰元素够用。4. 从素材到母版在 PPT 里搭一套可复用版式提取出来的素材是散的真正提升效率的是把它们组织成 PPT 母版和版式。这一步决定你以后是“每次拼图”还是“套版出稿”。4.1 母版、版式、主题色的三层组织PPT 的复用体系分三层母版Master管全局字体和占位符版式Layout管单页结构主题色Theme Colors管配色。素材库里的颜色如果没被抽成主题色后面每改一次配色都要手动调几十页。我一般先从素材里提取主色写进主题色板。用 Python 统计主色调# extract_palette.py from PIL import Image from collections import Counter img Image.open(assets_nobg/asset_0001.png).convert(RGB) # 缩小后再统计避免逐像素太慢 img img.resize((200, 200)) pixels list(img.getdata()) # 量化到 16 级聚合同类色 quant [(r//16*16, g//16*16, b//16*16) for r, g, b in pixels] top Counter(quant).most_common(8) for color, count in top: print(#%02X%02X%02X % color, count)拿到主色后在 PPT 的“设计-变体-颜色”里自定义一套主题色把提取出的色值填进去。这样后面所有形状、文字只要引用主题色改一处全局生效。版式则按素材库里的典型页面结构建封面、目录、章节页、内容页、结尾页每类建一到两个版式把占位符位置固定下来。4.2 用 python-pptx 批量把素材灌进版式手工拖几百张图进 PPT 不现实用python-pptx批量生成初稿再人工微调。# build_deck.py from pptx import Presentation from pptx.util import Inches import os prs Presentation() # 用空白版式避免默认占位符干扰 blank_layout prs.slide_layouts[6] assets sorted(os.listdir(assets_nobg)) # 每页放 4 张2x2 网格 per_slide 4 for i in range(0, len(assets), per_slide): slide prs.slides.add_slide(blank_layout) batch assets[i:iper_slide] for j, name in enumerate(batch): row, col divmod(j, 2) left Inches(0.5 col * 4.5) top Inches(0.5 row * 3.0) slide.shapes.add_picture( os.path.join(assets_nobg, name), left, top, widthInches(4.0) ) prs.save(asset_overview.pptx)slide_layouts[6]是空白版式避免自动带入标题占位符。add_picture的width固定后高度按比例自适应保证不变形。生成的asset_overview.pptx是一份素材总览方便你快速浏览和挑选不是最终成品。真正做课件时是把选中的素材贴进前面建好的版式里。4.3 主题色与字体的统一替换素材灌进去后颜色和字体往往还是散的。统一替换用 PPT 自带的“替换字体”加主题色重映射或者用python-pptx遍历修改。# unify_theme.py from pptx import Presentation from pptx.dml.color import RGBColor prs Presentation(asset_overview.pptx) BRAND RGBColor(0x1F, 0x4E, 0x79) # 替换成你提取的主色 for slide in prs.slides: for shape in slide.shapes: if shape.has_text_frame: for para in shape.text_frame.paragraphs: for run in para.runs: run.font.color.rgb BRAND prs.save(asset_overview_themed.pptx)这段只改文字颜色形状填充色需要另外遍历shape.fill。实际项目里我一般先在 PPT 里手动把主题色配好再用脚本做批量兜底两者结合比纯脚本可靠。字体统一则优先在母版里设母版改了引用母版版式的页面自动跟着变。5. 避坑与排查素材库处理里最容易翻车的五件事这一步是血泪经验集中区。下面五条都是我在实际处理类似素材库时踩过的按“现象→原因→解决”写清楚。5.1 导出的图全是白底透明通道丢了现象pdfimages导出的 PNG 放进 PPT 后图标周围一圈白色和背景不融合。原因PDF 里的透明信息在导出时被合成了白底pdfimages默认不保留 alpha。解决改用-png并确认源 PDF 本身带透明层如果源就不带透明只能走去背景流程用rembg补回 alpha 通道。判断源是否带透明可以用pdfimages -list看comp列值为smask说明有软掩码能保留透明。5.2 矢量转 SVG 后文字变乱码或消失现象Inkscape 转出的 SVG 打开后文字变成方框或直接不见。原因原 PDF 字体未嵌入转换时找不到对应字体。解决先用pdffonts检查字体嵌入情况未嵌入的字体在转换前装到系统里装不了就接受文字转曲用--export-text-to-path参数强制转路径形状保真但不可编辑。5.3 批量去背景把细线条图标啃没了现象rembg处理后细线图标断成几截或者整体变淡。原因细线条的 alpha 边缘被模型判定为背景阈值切过头。解决对细线图标关掉alpha_matting改用post_process_maskTrue做形态学修补或者干脆对这类图标不做去背景直接在 PPT 里用“设置透明色”手动点掉白底精度更高。5.4 素材分辨率够但 PPT 里还是糊现象图片本身 2000 像素宽插进 PPT 全屏后投影上发虚。原因PPT 默认会压缩图片导出或放映时按 96 DPI 重采样。解决在 PPT 选项里关掉“不压缩文件中的图像”或者导出时选“使用原始分辨率”。另外确认图片是 RGB 而非 CMYKCMYK 在屏幕渲染时会被二次转换也会发虚。5.5 母版改了但已有页面不跟着变现象在母版里改了字体和配色之前做好的页面纹丝不动。原因那些页面在编辑时手动覆盖了母版格式断开了继承关系。解决选中页面右键“重设幻灯片”恢复继承如果覆盖太多用“开始-替换-替换字体”做一次全局替换兜底。预防办法是建版式时就固定好占位符内容只往占位符里填不手动拖文本框。6. 进阶把素材库变成可检索的资产索引做到母版这一步效率已经比手工拼图高一个量级。但如果素材积累到几百上千个找图又成了新瓶颈。我的做法是给每个素材打标签建一个本地索引用关键词就能定位。6.1 用图像哈希做去重先砍掉重复素材素材库翻来覆去导出很容易混进重复图。用感知哈希pHash先做一轮去重能砍掉三成冗余。# dedup.py from PIL import Image import imagehash import os seen {} for name in sorted(os.listdir(assets_nobg)): path os.path.join(assets_nobg, name) h imagehash.phash(Image.open(path)) # 汉明距离小于 5 视为重复 dup None for k, v in seen.items(): if h - v 5: dup k break if dup: print(fdup: {name} {dup}) else: seen[name] hphash对缩放、轻微压缩不敏感适合判断“视觉上是不是同一张”。阈值 5 是经验值调小更严格调大更宽松。去重后素材量降下来后面打标签的工作量也跟着降。6.2 给素材打标签文件名规范加 sidecar 元数据标签不要塞进文件名会又长又乱。我的做法是文件名保持序号另存一个meta.json做 sidecar。{ asset_0001.png: { tags: [图标, 箭头, 蓝色], source_page: 3, usage: 流程节点 }, asset_0002.png: { tags: [背景, 渐变, 深色], source_page: 5, usage: 章节页底图 } }tags写视觉特征和用途source_page保留回溯能力usage写推荐场景。有了这份索引找图时用脚本按标签过滤比在文件夹里翻快得多。6.3 用标签快速筛选并生成候选页最后一步把标签查询和 PPT 生成接起来输入关键词直接出一页候选素材。# pick_by_tag.py import json from pptx import Presentation from pptx.util import Inches with open(meta.json, encodingutf-8) as f: meta json.load(f) keyword 箭头 hits [k for k, v in meta.items() if keyword in v[tags]] prs Presentation() slide prs.slides.add_slide(prs.slide_layouts[6]) for i, name in enumerate(hits[:8]): row, col divmod(i, 4) slide.shapes.add_picture( fassets_nobg/{name}, Inches(0.3 col * 2.4), Inches(0.5 row * 2.4), widthInches(2.0) ) prs.save(fcandidates_{keyword}.pptx) print(f{keyword}: {len(hits)} hits)输入“箭头”就生成一页所有带箭头标签的候选图直接挑。这套流程跑通后做一份新课件的时间从半天压到一两个小时主要精力回到内容本身而不是找图排版。我自己的习惯是每处理完一批素材当天就把meta.json补完绝不拖到下次——拖一次标签就对不上图等于白做。素材库这东西价值不在存了多少而在你能不能在三秒内找到要用的那张。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

证卡打印机CX7000驱动安装全攻略:32位与64位选型、避坑与批量部署

证卡打印机CX7000驱动安装全攻略:32位与64位选型、避坑与批量部署

简介:这份资源是证卡打印机JVC/IST CX7000的32位与64位驱动程序合集,面向需要制作身份证、会员卡、门禁卡等高清晰防伪证件的企业、学校及政府机构用户,也适合负责设备部署与维护的技术人员。压缩包共281个文件,约47.58MB&#xf…

2026/10/11 19:19:22 阅读更多 →
淘系自研前端研发工具 AppWorks 正式发布:TaoToken 统一 Key 打通研发链路

淘系自研前端研发工具 AppWorks 正式发布:TaoToken 统一 Key 打通研发链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 19:18:22 阅读更多 →
国产GPU横评实测:摩尔线程MTT S5000在智源FlagOS验证中精度领先|TaoToken统一API通道实测记录

国产GPU横评实测:摩尔线程MTT S5000在智源FlagOS验证中精度领先|TaoToken统一API通道实测记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 19:18:22 阅读更多 →

最新新闻

YOLOv7火焰烟雾检测实战:从数据集标注到部署避坑全攻略

YOLOv7火焰烟雾检测实战:从数据集标注到部署避坑全攻略

简介:基于YOLOv7的火焰与烟雾检测方案,面向计算机视觉开发者、消防预警领域研究者、安全监控项目人员以及正在入门目标检测的学员,适合作为模型训练、推理验证和二次开发的参考基础。资源包含训练好的模型权重,下载后可直接加载推…

2026/10/11 22:24:10 阅读更多 →
Python akshare A股数据实战:从拉取清洗到本地存储的稳定链路

Python akshare A股数据实战:从拉取清洗到本地存储的稳定链路

简介:这是一份面向金融数据分析初学者与量化爱好者的Python股票数据处理源码包,基于akshare库实现股票数据的自动化抓取、清洗与分析,适合想用编程替代手工整理行情数据、搭建个人分析流程的开发者参考。压缩包共442个文件、约12.22MB&#x…

2026/10/11 22:24:09 阅读更多 →
连续相位调制CPM原理与MATLAB仿真实现

连续相位调制CPM原理与MATLAB仿真实现

简介:这份资源面向通信工程、电子信息类专业学生及数字通信初学者,聚焦连续相位调制(CPM)在MATLAB环境下的原理验证与仿真实现,帮助读者理解调制指数、符号速率与信息速率之间的关系,并掌握MSK、GMSK等典型…

2026/10/11 22:24:09 阅读更多 →
小龙虾OpenClaw一键部署U盘:把配置改到TaoToken的完整实操

小龙虾OpenClaw一键部署U盘:把配置改到TaoToken的完整实操

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 22:24:09 阅读更多 →
Pytorch实现DualGAN非配对图像去雾:原理与实战

Pytorch实现DualGAN非配对图像去雾:原理与实战

简介:基于Pytorch实现的对偶生成对抗网络图像去雾项目,包含完整Python源码、预训练模型与文档说明,面向计算机相关专业毕业设计、课程设计及需要项目实战的初学者。资源包共25个文件,涵盖10个py源码文件用于网络定义、训练、预测与…

2026/10/11 22:24:09 阅读更多 →
ROS2 Action通信机制详解:从接口定义到完整实战

ROS2 Action通信机制详解:从接口定义到完整实战

第一次看到ROS2里还有action这种通讯方式时,我一瞬间是有点懵的:topic我会用,service我也明白,action到底是什么鬼?直到我在导航小车上真跑了一次任务才发现,动作方式通讯解决的是"带反馈、可取消、有…

2026/10/11 22:23:08 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →