改进
修复
安全
SEO
开发日志
PDF转图像工具已完成专业级升级,结合更安全的处理基础,提升了页面选择速度、输出规划清晰度以及下载的稳定性。
- PDF处理更安全: 已将此转换器的PDF.js引擎升级为自托管的修补版本 4.10.38
- 无运行时CDN依赖: PDF.js和JSZip现在由ToolKnit直接提供,减少了第三方服务的可用性及加载风险
- 可靠的取消与清理: 停止或重置转换时,会取消正在进行的渲染并释放PDF文档、工作线程、画布及临时Blob URL
- 透明的转换反馈: 成功完成、部分成功、完全失败和取消现在有明确的状态,用户始终清楚发生了什么
- 更清晰的双语结果状态: 修复了屏幕阅读器完成提示显示在页面底部可见文本的问题,并确保切换中英文时已完成转换消息同步
- 精确选择页面: 转换所有页、输入指定范围、选择奇偶页,或使用每批 12 页的低内存缩略图选择。
- 专业的输出控制: 新增了72、150、300以及自定义的36至600分辨率、白色或透明背景、可编辑的输出文件名、零填充页码等选项
- 转换前预览输出: 首选页面会显示其预期像素尺寸、近似文件大小、页数以及渲染负载,包含高内存警告和画布硬限制
- 分批展示结果: 转换后的图片每次显示 12 张,附有准确尺寸和体积、完整适应的预览、支持无障碍操作的灯箱导航,以及针对失败页的重试控件。
- 密码保护的PDF文件: 用户可在双语、键盘可访问的对话框中输入或重试PDF密码,而非直接遇到无法解决的错误
- 更好的移动端保存体验: 新增iOS分享支持、大输出集拆分为ZIP包、安全的总大小阈值,以及避免横向溢出和浮动控件冲突的移动端布局
- 更稳定的 ZIP 下载: 归档过程以流式方式生成文件,避免无谓的图片重压缩,并让下载 URL 保持足够长的有效时间,方便浏览器保存。
- 更少的本地静默数据: 移除了之前隐藏的浏览器历史记录,该记录曾保存PDF文件名、文件大小和预览缩略图
麦克风/摄像头搜索意图优化: 原有工具和故障排查文章现在角色更清晰、互补,且未更改任一链接地址
- 工具意图保持不变: 在线的摄像头与麦克风测试 仍专注于立即检查摄像头预览、麦克风电平和连接设备
- 故障排查意图增强: 伴随指南现在优先提供黑屏、静音麦克风、权限被拒绝、设备错误、以及Zoom/Teams/OBS冲突等常见问题的解决方案,适用于Chrome、Edge、Firefox、Safari、Windows、macOS、iOS和Android
- 准确说明浏览器技术: 明确使用
MediaDevices.getUserMedia() 获取本地媒体流,不创建点对点通话、不录制或上传。
- 一致的发现信号: 同步了文章标题、描述、Open Graph、Twitter卡片、BlogPosting、FAQ、Breadcrumb、博客索引卡片、sitemap日期和离线缓存
响应式裁剪的稳定性: 第一次生产审核修复后,裁剪几何结构在桌面和移动端布局中保持稳定
- 图像裁剪: 在切换桌面和移动端宽度时,保留了原始图像区域的选择,消除了导致裁剪框放大或缩小的反向缩放问题
- 圆形裁剪: 对圆形叠加层和拖动坐标进行了调整,使其与画布实际显示尺寸对齐,确保在响应式缩放后选择区域始终保持居中、完整可见且准确
更安全的共享PDF工作流: 在保持原有双语界面和输出行为的基础上,将修补版PDF.js基础扩展至四个生产级工具
- 自托管 PDF.js 4.10.38: 合并 PDF、压缩 PDF、PDF 转 Word及 AI 转 PNG 从旧版 3.11.174 升级。
- 更安全的文档加载: 禁用了动态PDF JavaScript执行,并在所有四个工作流中标准化了本地Worker、字符映射和标准字体资源
- 降低第三方运行时风险: AI转PNG现在直接从ToolKnit加载JSZip以支持多画板ZIP下载,不再依赖公共CDN,新PDF资源已同步至离线缓存
- 更清晰的资源生命周期管理: 在完成PDF文档的页数统计、渲染、转换或重置后,明确释放文档以减少重复使用过程中的内存占用
- 生产级回归测试覆盖: 验证了六页合并、三页压缩、三页Word导出、三画板AI转换、ZIP兼容性以及390像素移动端布局,未出现控制台错误或横向溢出
背景移除首次运行与内存加固: 重构了AI初始化路径,使新访客可理解、延迟或开始模型下载,而无需离开工具
- 同页首次运行设置: AI模型提示仅在请求背景移除时出现;选择“稍后”会干净关闭,选择“下载并继续”则会恢复页面上待处理的图像
- 准确的下载提示: 同步了设置对话框、加载状态、提示、常见问题解答以及结构化数据,以实际最大值109.5 MB为依据,涵盖AI模型和WebAssembly资源
- 固定本地AI引擎: 将运行时CDN导入替换为本地托管的
@imgly/background-removal 1.5.5包,并修正了本地模型路径,降低了第三方可用性和供应链风险
- 内存受限的优化: 用单通道掩码快照替代了二十个完整的RGBA撤销副本,由12 MiB移动端和32 MiB桌面端预算控制,旧状态会自动释放
- 更安全的图像限制: 保留了20 MB的文件上限,并在受限设备上设置8百万像素的解码图像上限,在桌面端设置16百万像素上限,再开始AI处理
- PNG 保存更兼容: 下载时先把链接短暂添加到页面,触发后再移除,避免某些浏览器忽略对脱离文档元素的点击。
HEIC和图像方向的可靠性: 在日常图像工作流中加强了可预测输出、内存使用边界和格式指导
- HEIC转JPG: 在解码前添加了20文件、25 MB/文件和100 MB批量限制,以及在解码结果保留或显示前根据设备设置的像素上限
- 完整的HEIC结果: 多帧文件现在保留每个解码帧,混合批次显示明确的成功与失败卡片,预览释放临时URL,下载ZIP生成一个可预测的归档文件
- 自托管HEIC解码器: 将
heic2any 0.0.4本地固定,并与离线缓存同步,不再依赖运行时CDN
- 翻转与旋转图像: 强制执行声明的50 MB限制及设备感知的解码像素上限,拒绝动画GIF而非静默扁平化,将解码操作从base64 Data URLs中移出
- 准确的导出行为: PNG现在保留透明度和渲染像素,JPG使用白色背景和92%质量;元数据和动画限制在双语中均清晰披露,并包含结构化数据
- 降低导出内存: 用 Blob 生成替代 base64 导出,限制临时 URL 存活时间,重新开始时释放图片与 Canvas 资源。
裁剪、合并和丝网印刷的稳定性: 在四个图像和PDF工作流中完成了下一轮生产审计修复
- 图像裁剪和圆形裁剪: 添加了声明的50 MB限制,移动端和桌面端解码像素上限,可见的损坏图像错误提示,安全的空Blob处理,并明确警告:导出的动画GIF仅保留第一帧
- 更安全的裁剪下载: 移除了错误的iOS专属变量引用,保留了原生分享支持,允许再次选择失败的文件,修正了图像裁剪页底部‘热门工具’链接的错误标注
- 合并PDF验证: 在进入文件列表前拒绝损坏或加密的PDF文件,成功添加的文件按批次计数,现在跳过文件的合并操作会准确报告部分完成状态,包括成功、失败和页数详情
- 支持HEIC格式的丝网印刷: 将自托管的HEIC解码器直接连接到工具中,增加了可见的格式、文件大小、像素、解码和导出错误提示,并确保所有处理都在用户设备上完成
- 有意义的LPI控制: 将点密度改为有效五LPI步长,并采用连续像素网格映射,使得相邻的低密度和高密度设置现在能产生明显不同的输出效果
- 响应式预览和受保护的导出: 控制项基于1200像素的预览进行渲染,以实现更平滑的调整;PNG导出在安全情况下会从原始图像全尺寸重新渲染,并为大文件设置明确的设备感知兆像素上限
- 降低半色调内存: 将每个像素的通道掩码从四字节减少到一字节,收紧旋转网格边界,合并快速滑块事件,并在导出后释放临时全尺寸Canvas
- 网站文本完整性: 对所有215 HTML页面完成了UTF-8审计,并恢复了压缩图像和JPG转PNG页面中被截断的压缩范围和页脚文字
图像转PDF和批量压缩功能加固: 在两个高使用率的图像工作流中完成了另一轮生产审计
- 真实图像验证: 图像转PDF和压缩图像功能现在在实际浏览器解码后拒绝损坏或不支持的文件,不再接受虚假尺寸或后期失败
- 设备感知的批量预算: 在开始昂贵的Canvas或PDF操作前,添加了每文件、文件数量、总字节、每图像像素和总像素的限制
- 安全的用户文件名: 从动态HTML模板中移除了文件名,添加了可访问的删除和下载标签,并确保多个PDF和ZIP条目拥有唯一名称
- 准确的压缩结果: 如果重新编码后反而更大,就保留原文件并显示已保留原件,不再给出误导的负数或零节省率。
- 透明度和动画保护: 对整张图像进行PNG透明度检查,而动画GIF保持不变,确保不会有任何帧被静默丢弃
- 稳健的混合批次处理: 单个图像失败不再导致其他所有压缩结果失效;完成反馈会准确报告成功、未变和失败的文件
- 本地ZIP运行时: 两个工具现在均使用ToolKnit的固定本地JSZip 3.10.1构建,拥有更干净的Blob URL和Canvas生命周期管理
- 权威里程碑: ToolKnit的Ahrefs域名评级已达到42,首页徽章现已反映最新验证评分
首页发现界面重构: 重新设计了首屏工具发现体验,围绕更快的扫描、更清晰的信任信号和更平和的响应式布局
- 更聚焦的首屏: 加入简洁的日常办公文案、低对比度动画工作流画布、实时工具与文章数量、已验证的 Ahrefs DR 42 指标,以及 ToolKnit 被 FMHY Multi Tool Sites 收录的信息。
- 桌面分类栏: 将分类筛选功能移入固定左侧文本导航栏,与主内容网格对齐,采用简洁的白色选中标记,不使用任何装饰性容器
- 上下文感知导航: 分类栏会跟随用户在工具库中的浏览路径,随后在进入‘使用方法’部分前提供一个易于访问的返回顶部控制
- 聚焦移动端分类栏: 将不均匀的多行控件替换为可滑动的单行文本栏,保持每个标签的自然宽度,自动居中选中分类,并使用低调的白色下划线替代按钮或胶囊背景
- 双语吉祥物定位: 蜘蛛现在会跟随工具数量标签的实时位置移动,确保在英文文案换行、中文文案高度变化、字体加载完成或视口缩放时保持一致间距
- 新社交分享图示: 恢复了缺失的共享 Open Graph 图片,新增 1200 × 630 ToolKnit 预览图,使首页、工具页、博客、节日活动及支持页面的链接再次能显示一致的品牌卡片
- 保留生产信号: 保留了首页 URL、canonical 标签、英文 SEO 元数据、结构化数据、双语切换、浅色/深色主题、搜索行为、所有 91 工具卡片,以及原有的分析数据
状态与版本更新一致性: 修正了公共权威信号,并使长期版本更新日志更易于浏览
- 当前权威评级: 更新了状态页面中过时的 Ahrefs 域评分,从 41 更新为经验证的 42 值
- 持久化时间线导航: 将固定定位移至完整时间线侧边栏,保持当前日期在列表中的可见性,并在移动端提供一个固定日期按钮,搭配覆盖菜单,不会影响文章布局
首页页脚优化: 提升了工具发现效率,并添加了一个低调的个人签名,未改变周围分类布局
- 七个轮换热门工具: 首页页脚现在每次访问都会从完整工具目录中选择七个不同的工具,同时在 JavaScript 或数据请求不可用时保留七个可爬取的备用链接
- 双语创作者署名: 在 X 和 GitHub 链接下方添加简洁心形署名“Made with love in China · Zihang Dong”,配有自然中文版本和匹配的浅色主题样式。
- 可验证的 FMHY 识别: 在展示徽章下方新增双语信任说明,直接链接至 ToolKnit 在 FMHY 多工具站点目录中的页面,避免夸大两者关系
- 快速原生分享: 新增响应式分享 ToolKnit 功能,当设备支持时打开分享面板,否则自动复制首页 canonical 链接,并提供本地化可访问的反馈
- 移动端友站链接居中: 将首页中被包裹的合作伙伴链接页脚对齐至版权行的居中位置,与窄屏下工具页页脚的已有行为保持一致
六格式图片转换增强: 重构了用于 JPG、PNG 和 WebP 格式工具的共享转换核心,采用更安全的输入、更健壮的批量处理和可预测的下载机制
- 六个工具协同升级: 在不改变工具 URL、英文 SEO 元数据或双语架构的前提下,强化了 JPG 到 PNG、PNG 到 JPG、JPG 到 WebP、PNG 到 WebP、WebP 到 JPG 和 WebP 到 PNG 的转换能力
- 实际格式与解码验证: 验证 JPG、PNG 和 WebP 文件签名,拒绝伪装或损坏的文件,当可能时在完全解码前检测声明的尺寸,并阻止设备不安全的像素工作负载
- 有界批处理: 对 20 文件进行校验,每文件不超过 20 MB,根据设备设置总字节限制,对每张图片设置像素上限,并在转换前设定总解码像素预算
- 可靠的部分完成: 单张图片出错不再中断有效批次;双语失败摘要会明确标识每个被拒绝的文件,取消操作则在当前图片处理完成后干净停止
- 更安全的动态输出: 文件名现在仅以文本形式显示,重复输出名称会自动添加确定性后缀,Canvas 编码器必须返回包含请求 MIME 类型的非空 Blob,且 ZIP 内容在下载前会进行验证
- 透明 PNG/WebP 转 JPG 控制: 用户可选择白色、黑色或自定义背景色,而非接收一个无法解释的默认值,且控制选项在中英文之间实时切换
- 动画与元数据清晰性: 动态 WebP 文件在帧被丢弃前会被拒绝,双语说明 Canvas 输出会移除 EXIF、GPS、ICC 等嵌入元数据
- 本地固定 ZIP 运行时: 所有六页均加载 ToolKnit 自托管的 JSZip 3.10.1 构建版本,源文件、结果、ZIP、图片和 Canvas 资源通过显式生命周期清理释放
图片缩放功能生产级加固: 在输入验证、输出可预测性以及格式行为更清晰的基础上,强化了单图缩放流程
- 真实文件校验: 校验 JPG、PNG、WebP、BMP 和静态 GIF 的签名,确认浏览器可解码该图片,并在帧丢失前拒绝损坏文件或动态 GIF、PNG、WebP 资源
- 设备感知安全限制: 强制执行声明的 20 MB 文件上限、解码图像像素上限、1 至 10,000 像素尺寸限制,以及在创建大 Canvas 前设定的输出像素工作量上限
- 透明转 JPG 控制: 用户可选择白色、黑色或自定义 JPG 背景,PNG 保留透明度,有损格式质量控制在不适用时自动关闭
- 可靠的输出生命周期: 验证 Canvas 输出非空且 MIME 类型正确,释放替换的源和结果 URL,清除大型 Canvas 缓冲区,并使用安全的源文件派生命名规则用于下载和 iOS 共享
- 准确的双语指导: 同步展示接受的格式、动画与元数据限制、大图预期、校验反馈、响应式控件以及在中英文间持久化的移动端导航
图片网格分割功能生产级加固: 重构了固定 3×3 的流程,确保精确像素覆盖、有界内存使用和真实输出指导
- 完整覆盖源像素: 将余数像素分配给九张 PNG 分块图片,确保每个源像素恰好出现一次,邻接分块的尺寸差不超过一个像素。
- 诚实的形状提示: 明确提示当非正方形源会生成矩形分块图片时,直接链接至图片裁剪功能,并移除关于自定义网格尺寸或等正方形输出的声称,因为该工具并不提供
- 真实格式校验: 校验 JPG、PNG、WebP、BMP 和静态 GIF 的签名及解码尺寸,拒绝损坏文件和动态 GIF、PNG 或 WebP 资源,防止帧丢失
- 按设备设置安全边界: 在高开销处理开始前,执行 20 MB 文件限制、解码像素和尺寸上限、最小 3×3 输入尺寸,以及移动端/桌面端 ZIP 内存预算。
- 轻量级预览: 替代九个永久全分辨率 Canvas 和 Data URL,使用受限 180 像素的 Blob 预览,仅在每个编号 PNG 分块图片导出时保留完整分辨率
- 可靠的本地 ZIP 导出: 在所有九个分块图片间复用一个 Canvas,校验每个 PNG Blob 和 ZIP 条目,使用自托管的 JSZip 3.10.1 构建,并释放临时图片、Canvas 和 URL 资源
- 已验证的双语功能:完成了WebP输入测试、重置与重新选择、大图预览、文件限制、精确余数尺寸设置、ZIP打包完成,以及390像素级别的英文和中文布局,未出现工具错误
文档转PDF功能强化:完成了22工具PDF及图像审核的最后一页,采用更安全的DOCX验证、受限渲染和准确输出披露
- 基于图像的输出保持真实性:标题相邻的引导、工作流程说明、常见问题解答、社交元数据和结构化数据现已明确说明,每个预览页面最终都会转化为PDF中的图像,因此文本、链接、书签和可访问性结构均不会保留
- 真实DOCX验证:严格遵守声明的20MB限制,验证ZIP签名和必需的Word包结构条目,拒绝损坏或伪装的文件,并防止条目数量过多或包体积膨胀
- 设备感知渲染预算:限制页面数量、每页像素、总捕获像素、扩展文档内存和最终PDF大小,同时自动降低大文件的捕获缩放比例以确保安全
- 更低的转换内存占用:将每页的Base64 Data URL替换为经过验证的JPEG Blob和二进制图像数据,每次插入后立即释放Canvas,并在成功、失败和取消路径中移除离屏渲染容器
- 可靠的取消与恢复功能:用户可以在昂贵阶段之间停止长时间转换,保留已验证的预览,并可无残留结果状态或泄漏的渲染资源重新尝试
- 固定本地转换栈: Word转PDF现在加载本地托管的JSZip 3.10.1、docx-preview 0.3.3、html2canvas 1.4.1和jsPDF 2.5.1构建,不再依赖运行时的三个公共CDN
- 生产环境回归测试覆盖:验证了两页DOCX预览与转换、损坏及超大输入文件的拒绝、真实30页的取消操作、60页桌面上限,以及390像素级别的英文和中文布局,均未出现工具错误
如果你一路读到这里,那你大概率是ToolKnit的忠实用户。这篇更新实在太长了,我怀疑很少有人会一直看到这里——所以当然,我得在底部留下一个开发者的备注。哈哈。
最近几天是一场高强度的冲刺。不仅是为了发布更多更新,更是为了让使用ToolKnit的每一个小细节更流畅、更安全、更可靠。我投入了大量精力完成这次更新,可能这是我写过的最长一篇更新。不过,我觉得这值得:许多原本默默无闻的细节现在都得到了显著改善。
今天的首页也经过了细致的UI优化,我真心喜欢现在的感受。它更清晰、更平静,也更接近我长久以来在脑海中构想的ToolKnit版本。
请继续在需要时使用ToolKnit,让每一个小任务变得更简单。每一次访问、分享和反馈,都帮助这个项目不断前进。
下一次更新预计需要大约半周到一周时间。最近的节奏有点过于紧张,我也在推进另一个项目。但我依然在这里,用心构建。我期待你使用接下来的内容——也希望你能将ToolKnit分享给那些真正需要它的人。
董子航
2026 年 7 月 27 日——一篇长更新,短暂停歇,仍在开发