
1,000 × 20,000 的螢幕截圖包含 2000 萬像素。在未壓縮的 RGBA Canvas 中,在計算臨時畫布、解碼的來源影像、撤銷快照、PDF 資料和瀏覽器開銷之前,僅原始像素緩衝區就大約有 8,000 萬位元組。因此,磁碟上的檔案大小是編輯記憶體的一個糟糕的估計。
螢幕截圖 PDF 版本 0.0.13 使用裝置感知像素和歷史預算來減少記憶體較低的系統上的崩潰,同時在功能較強的裝置上保留更多細節和撤銷容量。本文解釋了這些當前值以及使用者可以應用於任何基於瀏覽器的圖像工作流程的推理。
PNG 和 JPEG 壓縮重複或可預測的視覺訊息。 4 MB PNG 在解碼後可以擴展到更大的像素緩衝區。螢幕截圖的第一個計算是:
pixel area = width × height
粗略的緩衝區下限估計是:
RGBA bytes = width × height × 4
在 3,200 萬像素時,一個原始緩衝區約為 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,並記錄重疊或斷面邊界。
報告問題時,請包含來源寬度和高度、壓縮檔案大小、瀏覽器和擴充版本、報告的裝置記憶體層(如果可用)、嘗試的操作以及重現故障的最小尺寸。當合成影像可以表現出相同的分配行為時,請勿附加私人螢幕截圖。
自適應限制並不聲稱層中的每個設備都具有相同的行為。它們是細節、穩定性和撤消能力之間的明確權衡。了解像素數學可以幫助用戶在瀏覽器達到不可恢復的限制之前選擇更小、更清晰的捕獲。