Word转HTML实操指南:三种转换路线对比与Python清洗方案
简介Word2Htm是一款面向网页编辑、文档发布及内容管理人员的Word转HTML工具专注解决Word另存为HTML时产生大量冗余代码、后续难以维护的痛点。它通过智能分析文档结构与样式自动生成条理清晰、简洁规范的HTML代码尤其适合需要批量转换Word2007文档、以及要求输出源码整洁的网站维护场景。压缩包共7个文件核心为Word2Htm.exe主程序配套Microsoft.Office.Interop.Word.dll、Office.dll等运行库另有exe.config、config.xml配置文件与txt说明文档dll负责调用Word接口配置类文件可辅助程序运行整包仅293KB。已有2936人学习下载工具小巧实用解压即可使用无需安装。转换后自动生成Completed目录HTML文件集中存放用户可直接批量查看、二次编辑或嵌入网页显著减少手工清理时间是一份高效的办公辅助工具包。1. Word转HTML工具为什么这么玄学先认清这四点Word转HTML这个需求几乎每个做过文档系统或知识库的人都会撞上。拿Word“另存为网页”存出来的东西动辄几百KB里面全是十几层嵌套的span标签和一堆看不懂的mso-前缀属性放进网页里往往还带着乱码、图片路径错乱、表格错位。Word2Htm这个工具要解决的就是这个问题把Word文档批量转成干净、可控、能直接上线的HTML而不是那种“能打开就算成功”的垃圾产物。适合用它的人有三类做企业内部文档站的、把docx导入知识库平台的、以及写脚本批量排版静态页面的开发者。读这篇文章前你得先接受一个事实转换的坑不在转换本身而在你对你手上这批文档的了解程度。2. 三条转换路线怎么选pandoc、COM转存与LibreOffice的边界2.1 先明白Word→HTML的本质在做什么Word的docx文件本身是一个zip包里面装着document.xml、styles.xml一堆XML文件。HTML是另一种树状结构。所以Word转HTML本质上是把一种结构映射成另一种结构而不是简单的格式替换。这也解释了为什么同一个文档用不同工具转结果差异会非常大——因为每套工具对Word内部结构的理解程度不一样。对Word格式支持最好的一定是Word自己。通过COM/WPS接口让Office软件“另存为HTML”输出保真度最高但噪音也最大。反之pandoc这类工具走的是逆工程解析的路线它不关心你用什么字体、段间距多少它只提取“标题、正文、列表、表格”这些语义结构。两种思路没有绝对的好坏取决于你的下游要什么——要“长得一样”还是要“结构干净”这两件事在多数场景下是冲突的。2.2 路线Apandoc——最省心的文本流方案pandoc适合处理结构规整、样式简单的教科书类文档。它读取docx里的样式映射把Word的Heading 1转成h1把正文段落转成p把表格转成HTML table代码块也会被识别。转换命令一行就够pandoc 输入.docx -f docx -t html -s -o 输出.html --extract-media./assets这里-s表示生成一个完整HTML文档带head和body--extract-media表示把文档里嵌入的图片解出来放到assets目录。转换完成之后HTML里图片src会自动指向assets/xxx.jpeg这种路径。pandoc的问题在于它对Word里手调过的局部格式基本无感。比如有人用“正文”样式手改成了蓝色宋体小四pandoc给你的是标准正文这些局部格式全部丢失如果你的文档里大量使用文本框、域、目录TOC这类对象pandoc得到的HTML里可能直接空掉。所以我的建议是pandoc只作为预览级转换使用确认这批文档样式规整再走这条路否则后面清洗的成本会超出你的预期。2.3 路线B通过COM接口让Word自己转——保真但冗余要让Word当作转换引擎需要在本机安装Office或WPS并通过COM接口调用。Python里可以用pywin32转换核心参数是Format8HTML格式Encoding65001表示UTF-8编码。import win32com.client import os word win32com.client.Dispatch(Word.Application) word.Visible False doc word.Documents.Open(os.path.abspath(输入.docx)) doc.SaveAs( os.path.abspath(输出.html), FileFormat8, Encoding65001, AddToRecentFilesFalse ) doc.Close(False) word.Quit()这里FileFormat8对应wdFormatHTML也就是Word的网页格式。完成后Word会在HTML文件旁边生成一个“输出.files”文件夹里面放图片和CSS。这种方案的特点是视觉还原度最高页码、分页符都会以注释或分隔线的形式保留但HTML本身会非常脏光一个段落就可能占用1KB以上的字符。所以走这条路线时后面必须跟一步清洗。清洗标准做法是拿BeautifulSoup把style属性里的mso-前缀全部删掉把weight:normal这种冗余声明一并清除再重新设置统一类名。后面第三章我会给一套完整的清洗脚本这里先不展开。2.4 路线CLibreOffice无头模式——跨平台备选如果你只有Linux服务器又必须处理Word文件可以考虑LibreOffice的无头模式。执行soffice --headless --convert-to html --outdir ./dist 输入.docx这个方案的优点是部署简单不依赖Windows下的Office组件缺点是引擎对docx的解析精度不如Word本人表格宽度、图片尺寸经常出现偏差。它对于“能看就行”的内部项目够用但你要是拿它做对外发布的正式页面需要在输出后人工再过一遍版式。2.5 选型建议与对比表我的习惯是先拿三五个有代表性的文档分别跑三条路线比对结果再做决定。给出一个对比维度维度pandocCOM转存LibreOffice视觉还原度中高中低HTML体积小大中语义结构保留强弱中图片提取自动自动但路径多自动依赖环境跨平台Windows/WPSLinux/Windows均可批量处理便利性高中高可以这样理解这个表结构规整的文档用pandoc追求视觉还原就用COM转存加清洗服务器上没有Office且文档量巨大就用LibreOffice。三条路线各踩过一遍之后我自己的项目里最终默认走了“COM转存清洗”原因很现实——办公室里的人不按规范排版能救回原样的只有Word自己。3. Python实战用Python将Word转成HTML的完整流程3.1 环境准备与依赖说明第三步之前先把依赖装齐。Python 3.8以上版本需要安装pywin32、beautifulsoup4、lxmlpip install pywin32 beautifulsoup4 lxmlpywin32负责调用COM接口beautifulsoup4负责解析HTMLlxml作为解析器可以加快速度并保留更完整的结构信息。安装完以后建议先跑一句print(win32com.client.gencache.EnsureDispatch(Word.Application))验证能不能正常启动Word组件如果报错多半是Office组件注册表损坏需要重新安装或者修复Office套件。3.2 第一步让Word把文档转成HTML这一步的代码看起来很简单但有几个参数值得细说。import os import win32com.client from pathlib import Path def docx_to_html(docx_path: str, out_dir: str) - str: word win32com.client.Dispatch(Word.Application) word.Visible False word.DisplayAlerts False # 屏蔽弹窗 abs_docx os.path.abspath(docx_path) doc word.Documents.Open(abs_docx) out_html os.path.abspath(os.path.join(out_dir, page.html)) doc.SaveAs( out_html, FileFormat8, Encoding65001, AddToRecentFilesFalse ) doc.Close(False) word.Quit() return out_htmlDisplayAlertsFalse非常重要。文档里一旦有链接失效或宏安全提示Word默认会弹对话框把自动化的进程挂在那边等点击。编码参数65001对应UTF-8不用它的话Word会按本机默认编码输出中文HTML大概率是乱码。SaveAs之后Word会在out_dir里自动生成“page.files”目录里面放着图片、CSS和javascript这个目录名跟HTML文件的主文件名保持一致。3.3 第二步清洗冗余标签与内联样式Word生成的HTML里每个段落都是mso开头的样式声明。清洗的顺序建议是先去掉不用的meta和link再剥掉内联样式最后重设类名。from bs4 import BeautifulSoup import re def clean_html(raw_path: str, out_path: str) - None: with open(raw_path, encodingutf-8) as f: soup BeautifulSoup(f.read(), lxml) # 删除Word插入的命名空间属性 for tag in soup.find_all(True): for attr in list(tag.attrs): if attr.startswith(mso-): del tag.attrs[attr] # 删除样式声明里的mso前缀属性 for tag in soup.find_all(True): if tag.has_attr(style): style tag[style] style re.sub(rmso-[^;];?, , style) style re.sub(r\s, , style).strip( ;) if style: tag[style] style else: del tag[style] with open(out_path, w, encodingutf-8) as f: f.write(str(soup))这里先删属性名以mso-开头的属性再把style值里的mso-声明剔除。两个步骤不能合并因为Word有时会把mso-放到属性名比如mso-bidi-font-weight有时只放在style文本里。清洗后HTML的体积一般能降到原来的三分之一到五分之一。3.4 第三步图片提取与路径重写Word另存出来的HTML图片路径通常长得吓人img srcpage.files/image001.png width612 height792路径本身没有错但如果你要把HTML挪到别的目录相对路径就全断了。更麻烦的是有些场景里图片文件名是中文或带空格Src的分号之类特殊字符。所以做一个提取和重命名比较稳import shutil from pathlib import Path def collect_images(html_dir: str, target_dir: str) - dict: html_path Path(html_dir) / page.html files_dir html_path.with_name(html_path.stem .files) target Path(target_dir) target.mkdir(parentsTrue, exist_okTrue) mapping {} for img in files_dir.glob(*.png) files_dir.glob(*.jpg) files_dir.glob(*.jpeg): new_name fimg_{len(mapping) 1:03d}{img.suffix} shutil.copy(img, target / new_name) mapping[img.name] new_name return mapping注意这里只处理png/jpg/jpeg如果原文档里插入了gif或emf需要对应补充后缀。emf文件是Word里嵌入的矢量图直接放进网页通常不显示更稳妥的做法是用PIL先把.emf转成png。拿到mapping后再用BeautifulSoup替换所有img的src属性即可。3.5 参数说明与常见参数对照表整个流程里最容易被忽略的参数汇总如下参数取值作用FileFormat8wdFormatHTML导出HTML网页格式Encoding65001UTF-8避免中文乱码DisplayAlertsFalse关闭提示防止自动化卡在弹窗VisibleFalse后台运行不弹出Word窗口AddToRecentFilesFalse不加入最近文档清理运行痕迹有几个参数是我曾经踩过坑的Encoding如果设成65001保存出来的HTML头部会有meta charsetutf-8。另外SaveAs时如果目标路径已经存在同名文件Word不会覆盖而是直接弹“文件已存在”的提示所以在保存前应先删除旧文件或者给文件名加时间戳。4. 样式收敛把Word吐出来的HTML收敛成可用页面4.1 先看看Word生成的HTML有多脏清洗完标签之后你面对的HTML仍然属于“能看但很丑”的状态——段落之间靠空行当间隔标题没有明显的层级颜色表格边框可能因为样式被删除而完全消失。我见过很多团队走到这一步就停了然后拿着这套HTML去套页面模板结果上线后截图上全是惨不忍睹的样式冲突。Word的CSS全部集中在一个style标签里类名是WordSection1、MsoNormal、MsoHeader这种。直接用这些类名做样式覆盖你等于在和Word的默认表现打拉锯战改一处漏一处。更不用提Word还会给每个表格套一层table-t1这种自动编号。与其修修补补不如把样式全部剥掉换成自己定义的语义类。4.2 策略降级为“语义标签少量类名”收敛的原则是一人一份干净的HTML尽量少用内联样式用类名来做统一控制。具体做法分成三步。第一步把原有的类名全部清掉但保留h1-h6、p、table、ul、ol、li、blockquote这些标签本身。第二步根据Word样式名字做一些映射MsoHeader变成header-noteMsoToc1变成toc-level-1等等。第三步给body加一个包裹容器让内容宽度和设备宽度解耦。def normalize_semantics(soup): for tag in soup.find_all(True): if tag.has_attr(class): cls .join(tag[class]) if cls.startswith(Mso): # 映射规则写在一个字典里 mapping { MsoNormal: normal-para, MsoHeader: page-header, MsoToc1: toc-entry, } new_cls mapping.get(cls, generated) tag[class] [new_cls] else: del tag[class] return soup要注意Word里同一个元素可能有多个类名比如classMsoNormal MsoCommentText直接用startswith切换映射会漏。稳妥的做法是先split再遍历命中任何一个就置换成新类名。4.3 表格、列表、标题怎么统一处理表格是重灾区。Word会用table style和宽度属性值把单元格宽度写得死死的清洗后这些属性还在页面一缩小就横向溢出。处理方案是给表格统一加一个classdoc-table然后通过CSS放开宽度限制table-layout: fixed并给td设word-wrap: break-word。列表方面Word喜欢在li里套某些mso-list的类这些类删除后会丢失列表符号需要在CSS里为ul、ol补上默认list-style。还有一种常见情况文档里的编号是Word域生成的清洗后dom里会残留一个纯文本编号所以转换结果里“1.1 一级标题”这种文字会和标签结构重复需要人工决定保哪个、删哪个。4.4 一段可以直接用的CSS收敛模板下面这段CSS可以直接放进HTML的head里覆盖绝大多数Word导出文档的排版需求body { font-family: system-ui, PingFang SC, Microsoft YaHei, sans-serif; line-height: 1.75; color: #222; max-width: 860px; margin: 0 auto; padding: 24px 16px; } h1, h2, h3 { font-weight: 600; line-height: 1.3; margin: 1.5em 0 0.5em; } .normal-para { margin: 0 0 1em; } .page-header { font-size: 0.85em; color: #888; border-bottom: 1px solid #eee; padding-bottom: 4px; } .doc-table { width: 100%; border-collapse: collapse; table-layout: fixed; } .doc-table th, .doc-table td { border: 1px solid #ddd; padding: 6px 10px; word-wrap: break-word; } .toc-entry { line-height: 2; }这套模板是我做静态站时攒下来的不是最全但够稳。如果你的页面里还有图片记得给img加max-width: 100%高度auto这样宽图片不会把布局撑破。5. 避坑与常见问题排查把容易翻车的六个场景一次说清5.1 Word的“另存为网页”和COM转存混用会出事现象用Word界面的“另存为→网页”保存一份再用脚本批量导入出现部分文档图片不显示。原因界面的默认另存是“单个网页文件mht”它会把所有资源塞进一个mht包而脚本转换时按普通HTML来解析自然找不到图片。解决手动另存时强制选“网页.htm.html”并且告诉团队成员不要用mht格式交付。脚本里也可以加一个扩展名校验遇到.mht直接报错退出。5.2 中文乱码只出现在发到服务器上之后现象本地打开HTML中文显示正常传到Ubuntu服务器后浏览器显示乱码。原因本地看到的是Word按照本地环境编码保存的gb2312而服务器上的Nginx没有配默认charset浏览器按utf-8去解码gb2312。解决转换时强制指定Encoding65001装好环境后给Nginx配置加一句add_header charset utf-8。如果已经有一批旧文件可以用脚本把meta标签里的charset统一替换成utf-8再保存。5.3 表格宽度被Word写死手机上一片乱现象表格在电脑上看着正常手机上横向滑动或挤压变形。原因Word导出的table标签带width属性而且sheet里写的是绝对像素值。手机屏幕宽度小于表格宽度时会产生溢出。解决清洗阶段把table的width属性全部删掉交给CSS的width: 100%控制如果表格确实很宽需要保留横向滚动就在table外面包一层div并设置overflow-x: auto。5.4 页眉页脚里的内容残留在HTML里现象清洗后的HTML顶部出现一排页码或公司名位置不在预期的头部区域。原因页眉里的文字在Word中本来就不属于正文内容流但另存成的HTML会把它们以div形式插到正文前面很多人会漏看。解决转换后先检查HTML开头的div区域凡是包含页眉页脚特征的div统一删除。特征可以做成一个关键词列表页码、日期、机密等。这个活放在清洗脚本里先删文本再删标签。5.5 图片路径带中文线上直接404现象本地能显示线上图片全部加载失败控制台报404。原因docx内部图片的存储路径和文件名可能是中文但这些名称在Word的另存为时会原样落到files目录里线上服务器的文件系统或CDN对中文路径处理不一致。解决图片提取环节不要保留原文件名统一改成img_001.jpg这种纯ASCII命名同时在HTML里检查一遍src确保没有中文和空格。5.6 VML图形和文本框直接消失现象文档里有流程图或文本框转换后这些区域变成一片空白。原因Word的文本框、自选图形在另存为HTML时用的是VML格式浏览器默认不渲染VML清洗时如果误删了包含v:前缀的标签那就彻底丢失了。解决在清洗脚本里保留v:开头的标签不删除然后对HTML做一次渲染测试用无头浏览器打开看是否有空白区域。对于重要流程图更建议先把Word里的图形单独导出成图片再重新插入文档去转换。注意上面六条是我在多个项目里反复遇到的高频坑。你可以把“清洗后打开、看空白、看乱码、看路径”这四件事定制成一条自测清单每次转换完成之后按顺序过一遍基本上不会再有让你半夜被叫起来的问题。6. 进阶技巧批量转换与模板化输出流水线单文档转换是基础操作真实项目里往往一次要处理几十上百个Word文档还要统一套用页头页脚和导航容器。我的做法是把前三章的逻辑串成一个批量管线入口给一个目录出口给一个带站内导航的HTML集合。from pathlib import Path def batch_convert(input_dir: str, output_dir: str): src Path(input_dir) dst Path(output_dir) dst.mkdir(parentsTrue, exist_okTrue) for docx_file in src.glob(*.docx): stem docx_file.stem page_dir dst / stem page_dir.mkdir(exist_okTrue) raw_html docx_to_html(str(docx_file), str(page_dir)) clean_html(raw_html, str(page_dir / f{stem}.html)) images collect_images(str(page_dir), str(page_dir / images)) rewrite_img_src(page_dir / f{stem}.html, images) inject_template(page_dir / f{stem}.html, titlestem)inject_template做的事是把干净的HTML嵌进统一模板给页面加上面包屑、上一页下一页的链接。模板部分因人而异但只要封装成函数你后续处理新批次文档只需要改参数不用再碰转换逻辑。这里我建议在管线里加一个fail-fast机制任何一步抛异常记录文档名后继续处理下一份最后汇总异常清单。别让一个坏文档卡死整批任务。从那以后我每次接手新的Word转HTML需求都会强制先把原始文档跑一遍三路线比对然后再决定清洗策略和自测清单。这个习惯帮我少踩了很多坑。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

终端生产力进阶指南:从高频命令到tmux工作流

终端生产力进阶指南:从高频命令到tmux工作流

很多搞开发的朋友问过我一个问题:每天盯着终端敲命令,到底能敲出什么花样来?我的回答是,当你把命令行这条路径彻底打通之后,你会发现之前的很多操作都是在“手搓”,而真正高效的工作流,是可以做…

2026/10/18 22:59:13 阅读更多 →
R语言工业级机器学习工具链:开箱即用的时序异常检测与分类建模

R语言工业级机器学习工具链:开箱即用的时序异常检测与分类建模

简介:这是一套面向R语言初学者与数据科学实践者的机器学习入门代码集,聚焦数据预处理、主流算法建模、预测评估及结果可视化四大核心环节,帮助用户在真实项目场景中理解并复现线性回归、逻辑回归、SVM、决策树、随机森林、贝叶斯方法及Prophe…

2026/10/18 22:58:12 阅读更多 →
2025虚拟化建设方案:资源池设计、高可用与迁移避坑指南

2025虚拟化建设方案:资源池设计、高可用与迁移避坑指南

简介:一份2025年虚拟化建设方案文档,面向负责数据中心规划、服务器资源整合的IT管理及架构设计人员,重点解决业务系统平稳运行、计算存储资源动态扩展与利用率最大化等问题。资源共1个doc文件,压缩包约1000KB,从项目需…

2026/10/18 22:58:12 阅读更多 →

最新新闻

artcraft 项目实战:从零搭建创意工具的技术选型与核心模块拆解

artcraft 项目实战:从零搭建创意工具的技术选型与核心模块拆解

1. 从“artcraft”这个名字说起:它到底想解决什么问题第一次看到“artcraft”这个标题,我脑子里蹦出来的第一反应是“艺术”加“手艺”的组合词。直觉告诉我,这不是一个纯技术框架的名字,也不是某个具体产品的品牌名,它…

2026/10/19 0:24:02 阅读更多 →
前端登录密码加密实战:RSA-OAEP与Web Crypto API全解析

前端登录密码加密实战:RSA-OAEP与Web Crypto API全解析

这是一个几乎所有前端开发都绕不开的需求:登录页的密码加密。我自己刚工作那会儿接手过一个老系统,接口直接把明文密码放在请求体里,当时觉得“内网没事”,结果有一次在公共Wi-Fi环境下联调,抓包一看,密码完…

2026/10/19 0:24:02 阅读更多 →
Flutter HitTestBehavior 深度解析:从点击穿透到手势竞技场

Flutter HitTestBehavior 深度解析:从点击穿透到手势竞技场

1. 从一个点击穿透的诡异 Bug 说起做过 Flutter 开发的朋友大概率都遇到过这种场景:你在一个Stack里叠了两层 Widget,上面那层是个半透明的遮罩或者一个带GestureDetector的容器,下面那层是个按钮。你满心以为点击遮罩的时候事件会被遮罩吃掉…

2026/10/19 0:24:01 阅读更多 →
Java Swing飞翔的小鸟游戏实战:课设高分与完整源码解析

Java Swing飞翔的小鸟游戏实战:课设高分与完整源码解析

简介:飞翔的小鸟游戏Java实现源码及配套详细教程,面向Java初学者与需要完成期末大作业、课程设计或毕业设计的学生,提供一套可直接运行、便于二次开发的完整小游戏项目,个人手打九十八分并获导师认可。资源共四十五个文件&#xf…

2026/10/19 0:23:01 阅读更多 →
中文教育场景下的AIGC检测:原理、应用与教师实操指南

中文教育场景下的AIGC检测:原理、应用与教师实操指南

1. 从“AI代写泛滥”到“检测刚需”:中文教育场景的需求拆解一个学期末,某高校的A老师连续收到三篇“风格突变”的课程论文。第一篇措辞工整但缺乏个人视角,第二篇引用了大量教材原文却没有任何延伸思考,第三篇连标点符号都规范得…

2026/10/19 0:23:01 阅读更多 →
Spring Boot单体商城源码:从扣库存到JWT鉴权的电商后端实战解析

Spring Boot单体商城源码:从扣库存到JWT鉴权的电商后端实战解析

简介:面向Java中高级开发者与商城系统学习者的单商户商城小程序项目源码包,基于Spring Boot、MyBatis、Thymeleaf、Redis及Maven构建,并融入微服务拆分、小程序接口对接、数据库设计、OAuth2安全认证、Docker部署与监控测试等电商开发核心知识…

2026/10/19 0:23:01 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →