基于浏览器的文件处理
LeedyBox 工具以 JavaScript 的形式在您的网页浏览器中运行。当您选择文件或输入文本时,浏览器在您的设备上读取它,处理在您的电脑或手机上进行。文件和文本不会为了处理而上传到 LeedyBox 服务器。许多工具使用标准的浏览器功能:图片使用 Canvas API,哈希、密码和 UUID 使用 Web Crypto API,字数统计使用 Intl.Segmenter,时区使用 Intl 日期 API。PDF 转文本和图片转文字中的 OCR 使用 Tesseract.js,它在浏览器中运行 WebAssembly 代码。
您的文件会经历什么?
- 您从设备中选择文件或将其拖放到页面上,或者在工具中输入或粘贴文本。
- 浏览器将文件读入当前页面的内存。
- 工具使用在您设备上运行的 JavaScript 库对文件进行转换、编辑、合并、拆分或读取。
- 结果在浏览器中生成,显示在页面上或提供下载。所需时间取决于输入内容和您的设备。
- 复制按钮只有在您点击时才会将结果写入剪贴板。
- 关闭或重新加载页面会丢弃该页面内存中的文件、文本和生成的值。
各工具使用的库
部分工具基于开源库构建,其他工具只使用 LeedyBox 自己的脚本和浏览器内置功能。所有库及其所需的数据(字体映射表、OCR 语言数据、模型)都以固定版本直接由 leedybox.com 提供,工具页面不会从公共内容分发网络(CDN)加载代码。请求的只是库代码和数据;您处理的文件和文本不会包含在这些请求中。
| 工具 | 库 | 加载来源 |
|---|---|---|
| 图片转换 | 浏览器 Canvas API、LeedyBox BMP/ICO 编码器、JSZip(用于批量下载) | leedybox.com |
| 图片尺寸调整、图片旋转与翻转 | 浏览器 Canvas API、JSZip(用于批量下载) | leedybox.com |
| 图片裁剪 | 浏览器 Canvas API(无第三方库) | leedybox.com |
| 图片压缩 | 浏览器 Canvas API、UPNG.js 2.1.0 和 pako 1.0.11(MIT 许可证,用于 PNG 颜色缩减)、JSZip(用于批量下载) | leedybox.com |
| 删除 EXIF 信息 | LeedyBox 元数据读取和清除脚本(图像数据直接复制,不重新编码)、JSZip(用于批量下载) | leedybox.com |
| 图片转文字(OCR) | Tesseract.js(OCR 引擎和语言数据) | leedybox.com |
| Favicon 图标生成器 | 浏览器 Canvas API、LeedyBox ICO 编码器、JSZip(用于生成 ZIP 包) | leedybox.com |
| 证件照制作 | MediaPipe Tasks Vision 0.10.35(Apache License 2.0)及 Face Landmarker、Selfie Segmenter 模型,浏览器 Canvas API | leedybox.com(自托管) |
| 二维码与条形码生成器 | qrcode-generator 1.4.4、JsBarcode 3.11.6(MIT 许可证) | leedybox.com(自托管) |
| PDF 转 JPG | PDF.js、JSZip | leedybox.com |
| JPG 转 PDF | jsPDF、SortableJS | leedybox.com |
| PDF 转文本 | PDF.js、Tesseract.js(OCR 引擎和语言数据) | leedybox.com |
| 合并、拆分和压缩 PDF | PDF.js、pdf-lib、JSZip(拆分 PDF) | leedybox.com |
| 整理 PDF 页面、旋转 PDF | PDF.js(页面缩略图)、pdf-lib、SortableJS(整理 PDF 页面) | leedybox.com |
| PDF 添加水印、PDF 添加页码 | PDF.js(预览)、pdf-lib;标准 PDF 字体无法显示的文字系统中的文本,会用您设备上的字体绘制并以图片形式添加 | leedybox.com |
| 数据转换 | js-yaml、PapaParse、LeedyBox 数据工具脚本 | leedybox.com |
| Base64 / URL / JWT、Cron 解析器、正则表达式测试 | LeedyBox 数据工具脚本和浏览器内置功能(无第三方库) | leedybox.com |
| 哈希生成器 | MD5 由页面自身的脚本计算;SHA-1、SHA-256、SHA-384、SHA-512 和 HMAC 通过浏览器的 Web Crypto API 计算 | leedybox.com |
| 密码与 UUID 生成器 | Web Crypto API(crypto.getRandomValues、crypto.randomUUID) | leedybox.com |
| Unix 时间戳转换器 | 浏览器 Intl 日期与时区 API 和 BigInt(无第三方库) | leedybox.com |
| DNI/NIE/NIF 校验, 土耳其身份证号校验, INN/SNILS 校验, 巴西 CPF / CNPJ 校验, IBAN 校验, 意大利税号计算 | LeedyBox 号码校验模块(无第三方库);测试号码使用浏览器的 crypto.getRandomValues;IBAN 各国格式来自 SWIFT IBAN 注册表,作为 LeedyBox 提供的数据文件;Codice Fiscale 的地名代码来自意大利内政部 ANPR 表,作为数据文件,仅在该工具需要时加载 |
leedybox.com |
| 字数与字符统计 | 浏览器 Intl.Segmenter | leedybox.com |
| 命名格式转换、文本比较、Lorem Ipsum 生成器 | LeedyBox 数据工具脚本(无第三方库) | leedybox.com |
| 人民币大写转换 | LeedyBox 金额转换模块(无第三方库),浏览器 Intl.NumberFormat 与 Intl.DisplayNames |
leedybox.com |
| 全角半角转换 | LeedyBox 文本转换模块(无第三方库),浏览器 String.prototype.normalize() |
leedybox.com |
| 越南语去声调 | LeedyBox 文本转换模块(无第三方库),浏览器 String.prototype.normalize() |
leedybox.com |
| Slug 生成器 | LeedyBox 文本转换模块(无第三方库),浏览器 String.prototype.normalize() |
leedybox.com |
| 韩文姓名罗马字转换 | LeedyBox 文本转换模块(无第三方库) | leedybox.com |
| 西里尔字母转拉丁字母 | LeedyBox 文本转换模块(无第三方库) | leedybox.com |
| 简繁转换 | opencc-js 1.4.2(MIT 许可证)及 OpenCC 词典(Apache License 2.0) | leedybox.com |
| 音频转文字 | Transformers.js 4.3.1(Apache License 2.0)、ONNX Runtime Web(MIT 许可证)和 Whisper base、small、large-v3-turbo 模型(MIT 许可证) | leedybox.com |
| 日本年号换算 | LeedyBox 日期模块(无第三方库);日期显示使用浏览器的 Intl 日期格式 | leedybox.com |
| 泰国佛历换算 | LeedyBox 日期模块(无第三方库);日期显示使用浏览器的 Intl 日期格式 | leedybox.com |
| 农历公历转换 | LeedyBox 日期模块,农历表来自香港天文台和韩国天文研究院的数据(无第三方库);日期显示使用浏览器的 Intl 日期格式 | leedybox.com |
| 韩国年龄计算 | LeedyBox 日期模块,韩国阴历表来自韩国天文研究院的数据(无第三方库);日期和单位显示使用浏览器的 Intl 格式 | leedybox.com |
| 增值税计算器 | LeedyBox 增值税模块(无第三方库):精确计算使用浏览器的 BigInt,金额和货币用 Intl.NumberFormat 显示;税率表(vat-rates.json,约 35 KB)在打开页面时下载 | leedybox.com |
| 百分比计算器 | LeedyBox 计算模块(无第三方库);数字、货币和日期用浏览器的 Intl 格式显示 | leedybox.com |
| 贷款计算器 | LeedyBox 计算模块(无第三方库);数字、货币和日期用浏览器的 Intl 格式显示 | leedybox.com |
| 复利计算器 | LeedyBox 计算模块(无第三方库);数字、货币和日期用浏览器的 Intl 格式显示 | leedybox.com |
| BMI计算器 | LeedyBox 计算模块(无第三方库);打开页面时下载标准表(bmi-standards.json,约7 KB) | leedybox.com |
| 基础代谢计算器 | LeedyBox 计算模块(无第三方库);打开页面时下载公式(energy-equations.json,约8 KB) | leedybox.com |
| 年龄计算器 | LeedyBox 计算模块(无第三方库);数字、货币和日期用浏览器的 Intl 格式显示 | leedybox.com |
工具页面还会从 leedybox.com 加载 Tailwind CSS 脚本(3.4.17 版)用于样式。这些库的许可证文本见 LICENSES.txt。
为什么本地处理很重要
在设备上处理意味着文件不必传到转换服务器并排队等待,LeedyBox 也永远不会收到文件副本。同时,这也意味着结果取决于您的设备:内存充足的电脑可以处理比旧手机更大的文件。
浏览器的限制
由于处理依赖于设备资源,性能取决于可用内存、浏览器能力、CPU 速度和文件复杂度。非常大或复杂的文件需要更多内存和时间。如果标签页内存不足,浏览器可能会停止页面;将工作拆分为较小的文件通常会有帮助。某些输出格式还取决于浏览器能否进行编码。
隐私与网络请求
本地处理让文件留在您的设备上,但网页本身仍会使用网络:它会从 leedybox.com 加载自己的 HTML、样式和脚本以及上面列出的库,并加载 Google Analytics 和 Google AdSense,这两者只有在您接受 Cookie 后才会存储 Cookie。托管本网站的 Cloudflare 也会测量页面的加载速度(Cloudflare Web Analytics,不使用 Cookie)。这些请求都不包含您所处理的文件或文本的内容,也不包含您生成的密码、UUID、哈希值和条码。
PDF 转文本和图片转文字在首次需要时,会从 leedybox.com 下载 OCR 引擎和语言数据。Tesseract.js 会将下载的语言数据保存在浏览器的 IndexedDB 存储中,以免重复下载;如需删除,可在浏览器中清除本网站的数据。
证件照制作会在你选择第一张照片时,从 leedybox.com 下载 MediaPipe 库、其 WebAssembly 运行环境和人脸模型,传输量约 7 MB(解压后约 15 MB);只有在更换背景时才会再下载一个小模型(0.25 MB)。它们只保存在浏览器的普通缓存中,你的照片不会发送到任何地方。
简繁转换在你开始使用时,从 leedybox.com 下载 opencc-js 和所选转换的词典:繁转简最多约 100 KB,简转繁约 1.1 MB。你输入的文字不会发送到任何地方。
音频转文字在你开始第一次转写时,从 leedybox.com 下载 Transformers.js、ONNX Runtime WebAssembly 引擎和所选的 Whisper 模型:base 约 90 MB,small 约 250 MB,通过 WebGPU 在图形处理器上运行的 large-v3-turbo 约 750 MB。它们保存在浏览器的 Cache Storage 中,以免重复下载;工具会显示占用大小,并可以删除。运行模型的部分不能连接其他网站,你的录音不会发送到任何地方。
相关: 阅读隐私政策 · 阅读 Cookie 政策
常见问题
本地处理是否意味着不会发送任何数据?
您的文件和文本不会为了处理而上传到 LeedyBox。不过页面仍会发出正常的网络请求:从 leedybox.com 下载自身文件和所需的库,发送 Google Analytics 和 AdSense 请求(是否可以存储 Cookie 取决于您的同意选择),Cloudflare 也会测量页面加载时间。这些请求不包含您的文件或文本的内容。
为什么同一个 PDF 在不同设备上的表现可能不同?
客户端处理依赖于设备的可用内存、浏览器渲染引擎、CPU 速度和已安装的系统字体。硬件或浏览器版本的差异会改变处理速度,偶尔也会改变页面的渲染效果。
工具可以离线使用吗?
无法可靠地离线使用。必须先下载页面及其库,而且 PDF 转文本和图片转文字在首次需要时会下载 OCR 语言数据。