ImgZilla 1.3 正式發布:一個「原地圖片無損壓縮」工具,為什麼做了這麼久
ImgZilla 正式上架 Mac App Store 了。
它的核心功能很明確:把 Mac 上的圖片原地壓小——檔案名稱、路徑、格式都不變,原圖預設進垃圾桶,隨時可以還原。
這些操作全部在你自己的 Mac 上完成,無需連網,圖片不會離開你的電腦,也不會上傳任何伺服器——隱私和資料安全從一開始就是基礎設計。
這個功能看起來簡單,但我們反覆測試、推翻、重做了很多輪。這篇文章想記錄的,不是「我們做了什麼功能」,而是在真實使用場景中遇到的具體問題,以及最終改成的樣子。
「原地覆蓋」這四個字,容不得半點馬虎
大多數圖片壓縮工具會把結果另存為 photo-min.jpg——安全,但也把麻煩留給了你:檔案名稱變了,商品表裡的引用、網頁模板裡的路徑、歸檔目錄的排序,全都要跟著改。
ImgZilla 選擇了另一條路:壓縮結果直接寫回原路徑、原檔案名稱、原格式。JPG 壓完還是 JPG,引用不用改一行。
代價是:這個工具動的是使用者的原始檔案。一旦哪一步出錯,丟的不是快取,是別人拍了一整天的照片、攢了好幾年的收藏。
所以產品真正花時間的地方,從來不是壓縮本身——壓縮交給成熟的編碼器就夠了——而是圍繞「萬一」的那一圈防護。下面這些改進,都是測試中被真實遇到的。
測試裡改掉的幾件事
1. 原圖保護策略,推翻重做過一次
最初的設計是把原圖複製到一個專門的備份目錄裡。邏輯沒問題,但用起來彆扭:備份目錄會悄悄變大,使用者壓了幾個月才發現磁碟上多了一份完整副本,而當初想做的事恰恰是省空間。
現在的做法是垃圾桶優先:壓縮成功時,原圖先移入系統垃圾桶,再把壓縮結果寫回原路徑。
還原方式變成了每個 Mac 使用者都已經會的操作——打開垃圾桶,右鍵「放回原處」。不需要學習新概念,也不會有越長越大的隱藏目錄。這個開關在設定裡預設開啟;關掉就是直接覆蓋且不可恢復,所以關閉時會彈出二次確認。
2. 外接硬碟上的那個彈窗,是被測試逼出來的
在行動硬碟、NAS、網路卷上測試時,我們遇到了一個 macOS 上的常見問題:這些位置經常無法把檔案移入垃圾桶。
第一版的處理是直接報錯跳過——結果是使用者拖進一整個資料夾,什麼都沒發生。
現在的處理是:壓縮暫停,彈窗讓你決定:
- 選一個備份目錄:原圖複製到那裡,再覆蓋原圖;
- 放棄備份:二次確認後直接覆蓋,不保留副本;
- 關閉彈窗:視為取消,整個工作中止。
還有一個細節是測試中加上的:你的選擇會套用到本次剩餘的所有檔案,否則 500 張圖會連續彈 500 次窗——第一版就是這樣,自己用一次就受不了了。
選定的備份目錄會被記錄為預設備份位置(
~/Library/Application Support/ImgZilla Backups/下按時間建子目錄),後續遇到同類情況時優先使用。
3. 「已最小」:寧可什麼都不做
有些圖片在拖進來之前已經被壓縮過(無論是用其他工具還是此前用 ImgZilla 處理過),再次壓縮通常只能換來零點幾個百分點的體積變化。我們對此訂了一條硬性規則:壓縮率不足 0.4% 的,不動它,列表裡標記為「已最小」,原檔案原樣保留,也不消耗免費額度。
這條規則會讓統計數字變得沒那麼好看——一整本已被壓過的圖集拖進來,可能大部分都顯示「已最小」。但我們認為,一個為了顯示成績而把你的圖再壓一遍的工具,不值得放在你的原始檔案上。
4. 後綴名騙人的時候
測試樣本裡出現過不少「後綴寫著 .png、其實是 JPEG」的檔案——從各種管道流轉下來的圖,比想像中多。
現在 ImgZilla 會讀取檔案頭的魔術位元組來判斷真實格式,按真實格式選擇編碼器。後綴寫錯,也能正確處理。
5. 序列處理,而不是平行處理
一張一張按順序壓,看起來「不夠快」。我們試過平行處理,速度確實上去了,但在大量工作裡出錯時的狀態變得難以追蹤——而這個工具正在覆蓋使用者的原始檔案。
穩定性優先於峰值速度,最終保留了序列處理。需要說明的是,序列處理指的是逐張處理工作,而每張圖片的壓縮過程本身由編碼器內部利用多執行緒完成,不會浪費 CPU 的多核心能力。作為介面上的補償,我們做了這些:目前處理項目自動捲動到可視區域,滑鼠懸停時暫停自動捲動,底部即時顯示已處理張數與節省體積,全部完成後發系統通知。
6. 免費額度用盡時,工作是「暫停」不是「中止」
免費版每天可以壓 10 張,跨天自動重置。測試中我們發現,在哪一刻被打斷,體驗天差地別:如果拖進 200 張圖,壓到第 10 張直接失敗退出,使用者要重新加入全部檔案——那這個提示就成了純粹的騷擾。
現在的行為是:額度用完,工作暫停在原處,彈出購買面板;購買完成後,從斷點繼續壓剩下的,不用重新加入任何檔案。另外,額度只在壓縮成功時才扣——壓縮失敗或「已最小」都不算。
7. 19 種語言選項,以及一個不那麼顯眼的收尾
介面完整支援 19 種語言選項(含「跟隨系統」、簡繁中文、English、日本語、한국어,及主要歐洲語言、العربية、Tiếng Việt 等),可在設定裡隨時切換,切換後立即生效,不用重啟。
這部分工作量遠超預期,也是發布時間往後推的原因之一。但對一個在全球 App Store 上架的工具來說,讓使用者看到自己的母語,是最基本的尊重。
關於畫質:請不要相信我們,請自己看
壓縮這件事最難建立的就是信任。所以我們把話說清楚:
- PNG(oxipng)和 SVG(svgcleaner)是真正的無損壓縮,像素不變;
- JPEG、WebP、AVIF、HEIC/HEIF、GIF 在原理上都是有損重編碼,但參數選在了視覺無損的區間——肉眼幾乎無法分辨,但它不是「無損」,我們不會把這兩個詞混著用。
而且,你不必憑信任接受這句話。ImgZilla 內建了圖片對比視窗(⌘D):左邊壓縮前、右邊壓縮後,拖動中間的分割線左右對照,可以縮放到實際大小,仔細比對細節。列表裡每一張壓縮成功的圖,都能一鍵喚起對比。
覺得不行,就去垃圾桶把原圖放回原處。 這條退路始終在。
參數是固定的,介面上沒有品質滑桿。這是一個明確的取捨:調參需要理解量化表、編碼 method、speed 等專業概念,調錯了要麼白壓、要麼壓糊。我們把這件事替你做完了——每種格式的參數都是單獨調校的,拖進去點壓縮,得到的就是該格式在當前參數下最理想的平衡點。
如果你習慣自己調節壓縮參數,我們仍然建議你先試用一下 ImgZilla——參數已經過調校,或許能幫你省去反覆試錯的功夫。
它不做什麼
同樣重要的邊界,寫在這裡,省得你下載完才發現:
- 只有 macOS(12.3 及以上)。沒有 Windows 版、沒有 iOS 版、沒有網頁版。
- 不轉換格式。JPG 壓完還是 JPG,不會變成 WebP。
- 不改尺寸。不縮解析度、不裁剪。
- 不保證一定能壓小。已經最佳化過的圖,很可能一張都壓不動,會老老實實標「已最小」。
- EXIF 預設去除(包含 GPS 位置,檔案更小也更保護隱私)。如果你需要保留拍攝參數、版權和色彩配置,請到設定裡手動開啟「保留 EXIF 資訊」。
還有一條值得單獨強調:所有壓縮都在你的 Mac 本機完成。 除 App Store 的購買校驗外,ImgZilla 不需要連網,圖片不會離開你的電腦——不排隊、沒有張數限制、也沒有「上傳到別人的伺服器」這回事。編碼器全部是打包在 App 內的本地靜態庫。
現在可以開始用了
- 免費版:每天 10 張,跨天自動重置,功能不閹割。
- 解除限制:永久版(一次購買,不限數量)或按月訂閱,價格按你所在的 App Store 地區顯示。換了電腦或重裝,點「恢復購買」即可。
建議的第一次使用方式:先隨便拖一張你不太在意的圖進去,壓完點「對比」,自己看一眼畫質,再決定要不要把整個資料夾交給它。
這也是我們希望這個工具被使用的方式——先驗證,再信任。
有任何問題或建議,歡迎透過選單「幫助 → 回饋」告訴我們。1.3 是一個可以放心使用的版本,但它顯然不會是最後一個。
ImgZilla 1.3 現已在 Mac App Store 上架。要求 macOS 12.3 或更高版本。
立即下載 -> App Store