
1,000 × 20,000 的屏幕截图包含 2000 万像素。在未压缩的 RGBA Canvas 中,在计算临时画布、解码的源图像、撤消快照、PDF 数据和浏览器开销之前,仅原始像素缓冲区就大约有 8000 万字节。因此,磁盘上的文件大小是编辑内存的一个糟糕的估计。
屏幕截图 PDF 版本 0.0.13 使用设备感知像素和历史预算来减少内存较低的系统上的崩溃,同时在功能更强的设备上保留更多细节和撤消容量。本文解释了这些当前值以及用户可以应用于任何基于浏览器的图像工作流程的推理。
PNG 和 JPEG 压缩重复或可预测的视觉信息。 4 MB PNG 在解码后可以扩展到更大的像素缓冲区。屏幕截图的第一个计算是:
pixel area = width × height
粗略的缓冲区下限估计是:
RGBA bytes = width × height × 4
在 3200 万像素时,一个原始缓冲区约为 128 MB。浏览器操作可以同时暂时保存解码的图像、目标画布、裁剪的画布、预览和撤消状态。实际内存使用取决于实现和浏览器,因此该公式是规划指导而不是承诺。
编辑器会读取浏览器的 navigator.deviceMemory 提示(如果可用),否则假定保守的中间值。其画布像素限制为:
|报告的设备内存 |画布像素预算| | --- | ---: | | 2 GB 或更少 | 20,000,000 | |高达 4 GB | 32,000,000 | 32,000,000 |高达 8 GB | 48,000,000 | |超过 8 GB | 64,000,000 | 64,000,000
浏览器值是粗略的并且不普遍可用。它不应被解释为对可用 RAM 的精确测量。预算是一个护栏,而不是基准分数。

当上传的图像超出选定的像素预算时,编辑器将使用允许面积比的平方根计算比例:
scale = √(pixel budget ÷ source pixel area)
宽度和高度都乘以该比例。这样可以保留纵横比,同时减少预算的总面积。例如,将两个尺寸减半会将像素面积减少到四分之一。
缩放可以防止单个图像分配无界的画布,但它也会减少源细节。小界面文本和细线应在 PDF 预览中进行 100% 检查。如果它们变得难以阅读,请将源代码分成更窄或更短的部分,而不是反复提高压缩质量。
撤消快照可以复制大画布。因此,屏幕截图 PDF 会适应历史深度:
当快照被逐出时,较旧的对象 URL 将被撤销。这会限制保留的浏览器资源而不更改当前文档。用户仍应导出或保存重要工作,而不是将撤消历史记录视为持久存储。
除了总像素面积之外,浏览器和图形后端可能还会施加最大画布宽度或高度。屏幕截图 PDF 的拼接路径在区域预算之前应用单独的最大尺寸。即使总面积看起来合理,极窄和极高的图像也可能会达到尺寸边界。
浏览器版本、GPU 配置、操作系统和可用内存都会影响实际行为。 MDN 的 Canvas 教程 描述了 API,但并未为每种环境提供一个通用的安全最大值。
这些症状不会自动表明文件已损坏。使用较小的副本进行复制,关闭不相关的繁重选项卡,并记录源尺寸和设备上下文。
对于收据、研究或支持证据,分段文件可能比一张巨大的图像更清晰。使用确定性名称,例如 part-01、part-02,并记录重叠或截面边界。
报告问题时,请包括源宽度和高度、压缩文件大小、浏览器和扩展版本、报告的设备内存层(如果可用)、尝试的操作以及重现故障的最小尺寸。当合成图像可以表现出相同的分配行为时,请勿附加私人屏幕截图。
自适应限制并不声称层中的每个设备都具有相同的行为。它们是细节、稳定性和撤消能力之间的明确权衡。了解像素数学可以帮助用户在浏览器达到不可恢复的限制之前选择更小、更清晰的捕获。