haperone_local-image-compress/assets
haperone 56f205e53e chore: update production snapshot
docs: use public README locale links
2026-06-29 02:41:30 +02:00
..
Features.gif Refactor image compression pipeline and UI state 2026-06-28 20:59:18 +02:00
README.ar.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.de.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.es.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.fa.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.fr.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.id.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.it.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.ja.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.ko.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.nl.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.pl.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.pt-br.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.pt.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.ru.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.th.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.tr.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.uk.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.vi.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.zh-cn.md chore: update production snapshot 2026-06-29 02:41:30 +02:00
README.zh-tw.md chore: update production snapshot 2026-06-29 02:41:30 +02:00

Local Image Compress

不需雲端服務或 API直接在電腦上的 Obsidian 儲存庫中壓縮 PNG 與 JPEG 檔案。在不犧牲畫質的前提下,將圖片占用的磁碟空間減少 3070%。

Read in your language: EnglishالعربيةDeutschEspañolفارسیFrançaisBahasa IndonesiaItalianoNederlandsPolskiPortuguêsPortuguês (Brasil)РусскийไทยTürkçeУкраїнськаTiếng Việt日本語한국어中文简体中文繁體

Local Image Compress features

目錄

功能

  • 本機壓縮:在本機壓縮 PNG 與 JPEG 圖片。
  • 命令
    • 壓縮筆記中的所有圖片:處理目前使用中的筆記引用或使用的圖片。
    • 壓縮資料夾中的所有圖片:選擇資料夾並壓縮其中所有支援的圖片,不包含輸出資料夾。
    • 壓縮儲存庫中的所有圖片:掃描整個儲存庫,不包含輸出資料夾。
    • 移動壓縮檔案:將結果移到原始檔案位置;移動前備份原始版本與壓縮版本。
  • 自動化
    • 新增檔案時自動壓縮
    • 未壓縮圖片數量達到門檻且使用者處於閒置狀態後,在背景壓縮
  • 介面與便利功能
    • 檔案與資料夾右鍵選單
    • 附詳細說明的節省空間指示器
    • 狀態列進度指示器
  • 安全性與可靠性
    • 已處理檔案快取及快取備份
    • 移動壓縮檔案前建立備份,並可自動刪除

支援的格式

  • PNGimagequant WASM 流程)
  • JPEG/JPGmozjpeg WASM 流程)

本版本未包含 WebP、GIF、BMP、HEIC/HEIF 與 AVIF 編碼器,因此會刻意略過這些格式。

設定

設定 說明 類型/範圍 預設值
PNG 品質(最小-最大) 有損 PNG 量化品質範圍 1-100例如 65-80 65-80
JPEG 品質 JPEG 壓縮品質 1-95 85
允許的根目錄 允許壓縮的相對路徑。留空 = 整個儲存庫 字串清單 留空
輸出資料夾 儲存壓縮檔案的資料夾 字串 Compressed
自動壓縮新檔案 新圖片加入時壓縮 布林值 false
背景壓縮 閒置時在背景壓縮 布林值 true
背景壓縮門檻 自動啟動所需的未壓縮圖片數量 10-1000 50
閒置門檻 啟動背景壓縮前無使用者操作的分鐘數 1-60 分鐘 2
自動備份保留 自動刪除移動前建立的舊備份 布林值 false
備份保留天數 啟用自動保留時刪除早於 N 天的移動備份 1-365 30
自動移動壓縮檔案 啟動時將檔案移回原圖位置並取代原圖 布林值 false
自動移動門檻 觸發自動移動的待移動檔案數量 1-1000 50

運作方式

  1. 壓縮檔案儲存在 Compressed 中,並保留原始路徑結構。
  2. 快取記錄已處理檔案及原始大小,以避免重複壓縮並正確計算節省量。
  3. 若原始檔案位於允許的根目錄中,“移動壓縮檔案”會將檔案從 Compressed 移回原始位置。移動前會建立備份。

通常會略過很小的檔案PNG <5KBJPEG <10KB)。

內部安全限制固定:超過 100 MB 的檔案在讀取前略過,超過 1 億 像素的圖片在驗證檔頭後略過。

資料儲存與備份

  • **主快取:**儲存在外掛資料夾中。
  • **快取備份:**儲存在 Vault/.local-image-compress/backups/cache/;最多保留 50 個檔案。
  • **圖片備份:**儲存在 Vault/.local-image-compress/backups/originals/;取代原圖前建立。

自動化

  • 啟用“背景壓縮”後會顯示兩個滑桿:
    • 背景壓縮門檻101000 張圖片,預設 50。
    • 閒置門檻160 分鐘,預設 2。
  • 啟用“備份保留天數”後會顯示保留期限滑桿。
  • 啟用“自動移動壓縮檔案”後會顯示檔案數門檻。啟動時,Compressed 中的檔案數達到或超過門檻便開始移動。

與 Paste Image Rename 的互動

壓縮或移動檔案時,本外掛會暫時停用第三方外掛 obsidian-paste-image-rename。此保護無法關閉,因為壓縮結果與原圖的對應關係取決於新檔案不被其他外掛重新命名。

為什麼需要此保護

為何需要此保護:

  • Paste Image Rename 註冊了 vault.on("create") 處理常式,在圖片新增至儲存庫約一秒後執行。它一律處理以 Pasted image 開頭的檔案啟用“Handle all attachments”時還會處理所有其他圖片。
  • 本外掛向輸出資料夾寫入壓縮複本時會觸發該處理常式。有作用中的 Markdown 檢視時,它會重新命名輸出並破壞移動所需的對應關係,或為每個檔案顯示重新命名對話方塊。沒有作用中的檢視時,它會為每個檔案顯示 Error: No active file found,使批次處理期間介面充斥錯誤。
  • Obsidian 沒有供一個外掛暫停另一個外掛的公開 API因此暫時只停用該外掛是唯一可靠的解決方案。

安全處理方式:

  • 僅在壓縮或移動期間影響已知 ID obsidian-paste-image-rename
  • 操作後會在必要時重試還原,除非其狀態被外部變更。保護機制記錄是否由自身停用外掛,發生這種變更後不會嘗試還原。
  • 啟用與停用使用 Obsidian 內部 app.plugins API因為沒有公開替代方案。呼叫前偵測功能並妥善處理錯誤。

隱私與外部行為

  • 網路執行時不發出網路要求。PNG/JPEG 編解碼器內建於 main.js;圖片不會上傳。
  • 遙測與廣告:不包含分析、遙測、當機報告、追蹤、動態廣告或自動更新。
  • 帳戶與付款:無需帳戶、訂閱、授權金鑰或付款。外掛不會存取 manifest 中的選用贊助連結。
  • 儲存庫檔案:外掛讀取由命令、自動化或允許根目錄選擇的支援圖片。輸出寫入已設定的儲存庫相對資料夾;僅在備份後透過文件所述的手動或自動移動取代原圖。
  • 本機狀態:快取位於外掛資料夾;快取與移動備份位於 Vault/.local-image-compress/backups/
  • 外部檔案:外掛管理的資料留在目前儲存庫中。“開啟資料夾”只讓作業系統顯示已說明的備份資料夾,不傳輸資料。
  • 其他外掛:如上所述,obsidian-paste-image-rename 可能會暫時停用,隨後在確認狀態變更的來源後還原。

使用提示

  • 建議品質範圍PNG 65-80JPEG 75-90
  • 若只想壓縮 files/images/ 等特定資料夾,請設定“允許的根目錄”。
  • 儲存庫中未壓縮圖片較多時,請使用背景壓縮。

常見問題

外掛顯示 WebAssembly 模組初始化失敗。 請重新載入外掛。若錯誤再次發生,請在錯誤報告中提供 Obsidian 版本、平台與主控台錯誤。

壓縮檔案儲存在哪裡? 預設儲存在 Compressed。若要取代原圖,請使用“移動壓縮檔案”。

如何計算節省量? 快取包含原始與輸出大小時,計算結果準確。對於未壓縮的 PNG/JPEG外掛採用比例設有上限的保守估算需要時從磁碟讀取目前壓縮檔案大小。

授權

GPL-3.0-or-later. 第三方授權與聲明:THIRD_PARTY_NOTICES.md