這個頁面的程式碼沒跑起來。

直接從資料夾裡開啟 index.html,瀏覽器會攔下 JavaScript 模組,於是你選好圖片之後,頁面不會有任何反應。改用 http 把這個資料夾提供出去:

powershell -ExecutionPolicy Bypass -File serve.ps1

然後開啟 http://localhost:8080/。

圖片壓縮 壓到指定大小

說個大小,剩下的它來算。

語言: 繁體中文
檢視原始碼
你的圖片不會上傳。這裡根本沒有伺服器。

壓縮在你自己的瀏覽器裡、用你自己的硬體完成,用的是瀏覽器本來就帶的編碼器。這個工具沒有任何聯網功能,不取東西,也不發東西。就算真有,這個頁面的另一頭也沒有伺服器能接住一張圖。

即時檢查: 檢查中…

離線: 檢查中…

別信我們嘴上說的。開啟開發者工具,盯著「網路」面板,壓一張照片試試。沒有一條請求帶著圖片、縮圖、檔名,或者你選中內容裡的任何一個位元組。或者乾脆拔掉網線,照壓不誤。

1 選圖片

2 說清楚最大能有多大

別的壓縮工具這一步都做反了。它們丟給你一個畫質滑塊,讓你自己猜哪一檔能壓進人家給的限額。這裡反過來,你把限額說出來,工具去找剛好塞得進去的那個最高畫質,然後把剩下的額度用滿,不會把你要的 500 KB 壓成一個 300 KB 的檔案交回來。

實在不行,可以把圖片做小 只有畫質單獨往下降、已經降到壓縮痕跡開始露出來的時候才會動它。過了那一檔,畫素少一點但個個乾淨,比畫素多一堆卻全糊了好看。關掉它就是尺寸一格不動,目標再緊也全從畫質裡出。

允許它怎麼達到這個數

3 壓縮

以 Markdown 檢視

圖片怎麼壓到指定大小

  1. 選好你的圖片。拖到下面的方框裡,或者點開自己挑。瀏覽器直接從你的硬碟上讀,這期間沒有東西發出去。
  2. 填上人家要求的那個大小。上傳框說什麼都不收你照片,那多半是 100 KB;申報系統常見 500 KB;網頁要開得快,2 MB。最常用的四個數字直接做成了按鈕。
  3. 按「壓到這個大小」。每張圖會被反覆編碼幾遍,工具一步步逼近那個既能塞進去、畫質又最高的等級。本來就沒超標的檔案,原樣放行,一個位元組都不動。
  4. 看看代價有多大,然後下載。每個結果都寫明存成了什麼格式、用了哪一檔畫質、尺寸有沒有變,以及量出來跟原圖有多接近。按「對比」,兩張圖並排放著看。

說得更細的版本

怎麼把圖片壓到指定的檔案大小 上傳框要 500 KB,你的照片有 4 MB。一個大小限制到底要你付出什麼,先動哪個設定,以及 PNG 為什麼不像 JPEG 那樣能壓。

常見問題

我的圖片會傳到什麼地方去嗎?

不會。解碼、壓縮、測量,全由你自己的瀏覽器在你自己的硬體上完成,用的是瀏覽器內建的 JPEG、PNG 和 WebP 編碼器。這個工具沒有任何聯網功能,不取東西,也不發東西。頁面的 Content-Security-Policy 把它可能聯的地址全列了出來,沒有一個是本站的。

它怎麼做到剛好壓到那個大小?

試出來的。沒有哪個公式能把一個畫質等級換算成位元組數,這完全取決於圖片本身。所以工具把圖編碼好幾遍,一路找答案。它從畫質上限往下折半逼近,大約八次編碼就能定位到那個塞得進去、畫質又最高的等級。頁面上每一個大小都是真編出來的檔案,不是估算。

所謂「損失最小」,具體指什麼?

三件很具體的事。第一,本來就沒超標的圖原樣放行,不重新編碼。第二,先花畫質,後動解析度,而且畫質只降到壓縮痕跡開始露出來那一檔為止。再往下,工具改成把圖片做小、把畫質提回去,因為畫素少一點但個個乾淨,比畫素多一堆卻全糊了好看。第三,一旦找到塞得進去的結果,搜尋還會往回頂,把剩下的額度用滿。你要 500 KB,就不會拿回一個 300 KB 的檔案。

每個結果上的 SSIM 和 PSNR 是什麼?

是這次壓縮的代價,做法是把結果解碼回來跟原圖逐一比對。SSIM 比的是區域性的明暗、對比和結構,比數一數多少畫素變了更接近人眼在意的東西,大約在 0.98 以上,兩張圖並排看已經很難分辨。PSNR 是傳統的那個分貝值。兩個數都在你自己的機器上算,也都擺出來,好讓「損失很小」這句話是能核對的,而不只是嘴上說說。

它能讀、能寫哪些格式?

你的瀏覽器能解碼的它都能讀,實際上就是 JPEG、PNG、WebP、GIF、BMP,現在多數瀏覽器還包括 AVIF。寫出來的是 JPEG、PNG 和 WebP,因為瀏覽器內建的編碼器就這三種。選「自動」時,它保持檔案原來的格式,只有在「保持原格式就得縮尺寸、或者畫質會明顯掉下去」的時候才換成 WebP。

為什麼 PNG 壓不下去多少?

因為 PNG 是無損的,根本沒有畫質這個旋鈕可擰。想讓一個 PNG 變小,只能減畫素或者減顏色,所以選了 PNG,工具只能靠縮尺寸去夠那個目標。圖片要是照片,換 JPEG 或 WebP 能離目標近得多,而且看上去完全沒問題。要是 logo 或者帶透明的截圖,WebP 能留住透明,換成 JPEG 那塊地方會被填成白色。

壓縮會把 EXIF 和 GPS 資訊一起去掉嗎?

會,屬於順帶的效果。壓縮就是把圖解碼成畫素、再把畫素編回去,而一張畫布上只有畫素,不帶任何標籤,所以位置、相機型號、時間戳這些乾脆就沒寫進新檔案。你要是只想清掉後設資料、畫面別動,那該用 EXIF 檢視與清除,它只改容器,不重新壓縮畫面。

免費嗎?要註冊嗎?

免費,沒有帳號,不用登入,沒有試用期,也沒有水印。檔案的數量和大小同樣沒有上限,因為沒有哪臺伺服器在為它們掏錢,工作是在你自己的機器上乾的。本站帶廣告,經費就是這麼來的,廣告拿不到關於你圖片的任何資訊。

斷網能用嗎?

能。頁面開一次之後斷網,它照常運作。這也是證明「什麼都沒上傳」最省事的辦法。一個把圖片送出去壓縮的工具,拔線那一刻就停了。