# 怎麼把圖片壓到指定的檔案大小

有人扔給你一個數字，100 KB、500 KB、2 MB，而你的照片差得老遠。這一頁講的是：這個數字要你拿什麼去換，該花在哪裡，以及怎麼判斷壓完的這張還能不能發出去。

[開啟圖片壓縮](https://abox.tools/zh-TW/compress-image/): 說個大小，剩下的它來算。

最後更新 2026年8月26日

## 先說結論

開啟[圖片壓縮](https://abox.tools/zh-TW/compress-image/)，把照片丟進去，把人家給你的那個數字打進去，按按鈕。它會把圖編碼好幾遍，留下能塞進目標、又最好的那一份，並告訴你這一下花了多少。老實說，大多數照片配大多數目標，你根本看不出差別。

這一頁剩下的部分，是給看得出差別的情況準備的：結果發糊了、PNG 幾乎壓不動，或者你想在把圖發給別人之前，先弄清這個工具到底對它做了什麼。

![目標卡片：填入 200 kB，旁邊是常見上限的按鈕、格式選單，以及一行說明工具將要嘗試什麼。](https://abox.tools/screens/compress-an-image-to-a-target-size/target.webp)

把別人給你的數字填進去。下面的一切都是工具朝這個數字使勁，而不是你在品質滑塊上瞎猜。

## 一個檔案大小限制，實際上是在要什麼

JPEG 和 WebP 存的不是你的照片，是對這張照片的一段描述，而品質設定決定這段描述允許有多細。調低它，檔案就小，因為描述變糙了：細膩的紋理被平均掉，漸變出現色帶，邊緣泛起一圈淡淡的塊狀光暈。

所以，大小限制其實是給細節定的一筆預算。真正該問的不是「我能不能壓到 500 KB」，任何數字你都壓得到，而是「為了壓到這裡，我得放棄畫面裡的多少東西，而這些東西對我這次的用途要緊不要緊」。

兩條經驗。真實場景的照片，人臉、樹葉、布料，很能藏住壓縮痕跡，因為眼睛在裡面找不到一塊絕對平的地方去挑毛病。而截圖、圖表、logo，以及任何有大片純色和硬邊文字的東西，一壓就露，這類本來就該用 PNG 或者 WebP，而不是 JPEG。

## 為什麼沒有公式，以及那該怎麼辦

沒有哪個算式能算出「品質調到幾才剛好出一個 500 KB 的檔案」。這兩者之間的關係完全取決於畫面內容：同樣的設定下，一張大白牆的照片可能只有一張森林照片的十分之一大。凡是丟給你一句「品質：60」然後聽天由命的工具，都是在替你猜。

唯一靠得住的辦法是試。編一遍，看看多大，調一調，再編一遍。手動做這事很煩，所以壓縮工具才改成問你要一個品質數字，等於把這份煩瑣推給了你。自動做下來大約是八次編碼，而一張手機照片編八次，本世紀出的任何機器都是零點幾秒的事，所以本站這個工具改成問你要大小，搜尋它自己來。

它報出來的每一個大小，都是真編出來的檔案，不是估算。碰上有硬性上限的表單，這一點很要緊：一個樂觀了 2% 的估算，等於一次被打回來的上傳。

## 先花品質，再動畫素

把一個圖片檔案變小，只有兩條路。一是把同一張畫面描述得粗糙些，這是品質；二是描述更少的畫素，這是縮尺寸。兩者不等價，而且先後有講究。

品質先花，因為頭上大約 30% 的品質降幅，在照片上是真看不出來的，你扔掉的是格式本來存得比任何眼睛都仔細的那部分細節。畫素後動，因為品質一旦降到痕跡開始露出來，那麼一張尺寸小一點、畫質還體面的圖，就比一張全尺寸卻被壓爛的圖好看。畫素少一點但個個乾淨，勝過多一堆全糊了。

整套策略就這麼點東西，哪怕你用的是別的工具也值得記住：把品質往下調，調到開始不對勁了，就別再往下調，改成把圖做小。

### 什麼時候該主動縮尺寸

有時候那些畫素本來就是多餘的。一張 4000 畫素寬的照片，放在網頁上一欄 600 畫素寬的位置裡，扛著的是六倍於誰能看見的細節。你要是清楚這張圖最終待在哪裡，先按那個尺寸縮一下，大小問題往往就沒了，一點品質都不用花。做這件事的是[圖片縮放](https://abox.tools/zh-TW/resize-image/)，怎麼挑尺寸，[它自己那篇指南](https://abox.tools/zh-TW/guides/resize-an-image/)裡講了。

## 挑格式

值得知道的格式有三種，瀏覽器三種都能寫。

- **JPEG** 是給照片用的。有損，但有史以來的東西都認得它，拍真實場景的照片用它至今仍是好選擇。它存不了透明。
- **WebP** 做同樣的事，做得更好：同等的、你分辨不出來的畫質下，比 JPEG 小 25% 到 35% 左右，而且保得住透明。現在的瀏覽器都讀它。少數老一點的桌面軟體，還有一些公司的上傳表單，仍然不認，這是不用它的唯一實在理由。
- **PNG** 是無損的，也就是又精確又大。截圖、logo、線稿，以及任何有硬邊或者大片純色的東西，用它是對的；照片用它是錯的。

要檔案的那一方沒提別的要求，那就用 WebP，同樣壓到目標，它留下的可見損傷比 JPEG 少。檔案要送進一個老系統，或者送進一個你沒法測試的系統，那 JPEG 是穩妥答案。

## 為什麼你的 PNG 壓不下去多少

這是最常見的意外，而且不是你手上那個工具的 bug。PNG 是無損格式，存的是一模一樣的畫素，也沒有品質這個旋鈕可擰，擰了它就成另一種格式了。PNG 壓縮器能做的，只是把同樣那些畫素打包得更聰明些，通常也就省下百分之幾。

所以，檔案必須小很多、而且必須還是 PNG，那剩下的槓桿只有尺寸：畫素少一點，或者顏色少一點。要是它不非得是 PNG 不可，那就得看裡面裝的是什麼：

- **存成了 PNG 的照片。**非常常見，多半是無意的，也是這一頁裡最容易撿的便宜：轉成 JPEG 或者 WebP，往往能小上五到十倍，肉眼還看不出變化。
- **截圖或者示意圖。**轉 WebP。你要它無損它就能無損，而同樣的畫素，它一般比 PNG 小。轉 JPEG 會把文字邊緣搞毛。
- **帶透明的 logo。**WebP 保得住透明；JPEG 會拿一塊純色把它填掉，而那幾乎從來不是你想要的。

## 怎麼判斷壓完的還能不能用

看縮圖什麼都證明不了，縮圖大小下什麼都很好。有兩個更可靠的辦法：

**按全尺寸看，盯著畫面裡最平的那塊地方。**天空、皮膚、刷過漆的牆。壓縮損傷最先出現在平滑的漸變裡，表現為淡淡的方塊或者色帶，而那時細節豐富的區域還完全沒事。

**工具要是給了測量值，就讀一讀。**這裡的壓縮工具會把自己壓出來的結果解碼回去，跟原圖比對，報出 SSIM。這個數字比的是區域性的明暗、對比和結構，而不是數一數多少畫素變了，更接近人眼在意的東西。大約在 0.98 以上，兩張圖並排看已經很難分辨；低到 0.95 以下，發之前先自己看一眼。它同時也報 PSNR，就是傳統的那個分貝值，給習慣看它的人。

兩個數都在你自己的機器上算出來、擺給你看，而這正是它們的意義：把「品質損失很小」從一句宣稱，變成一個你能核對的數字。

![一行結果：原圖 1.4 MB，壓縮後的副本 196 kB，達到這個大小所用的品質，以及一個對比兩者的連結。](https://abox.tools/screens/compress-an-image-to-a-target-size/results.webp)

真正出來的東西，就擺在放進去的東西旁邊。那個對比連結，是你弄清這個數字有沒有讓你付出看得見的代價的入口。

## 發檔案之前，有三件事值得知道

**壓縮會順帶清掉後設資料。**重新編碼就是把畫面解碼成畫素、再把畫素編回去，而一張畫布上只有畫素，不帶任何標籤，所以 GPS 位置、相機型號、時間戳這些，乾脆就沒寫進新檔案。通常這算白撿的好處。你要是只想清掉標籤、畫面別動，那是另一件事：[EXIF 檢視與清除](https://abox.tools/zh-TW/exif-editor/)只重寫容器，不重新壓縮任何東西，裡面到底有些什麼，[它那篇指南](https://abox.tools/zh-TW/guides/remove-exif-and-gps-data/)講得很清楚。

**同一個檔案絕不要壓第二遍。**每一次有損編碼都會永久扔掉一些細節，而對一張已經壓過的圖再編一次，扔掉的更多，因為它會老老實實把第一遍留下的壓縮痕跡也保住，代價是真正的細節。永遠回到原圖，只壓一次。

**留住原圖。**有損編碼沒有回頭路。不管你最後發出去的是哪一版，一開始那個檔案，找個地方留著。

## 這些事一樣都不用上傳

瀏覽器內建 JPEG、PNG 和 WebP 編碼器已經很多年了，那就是把畫布裡的圖存下來時用的同一段程式碼。壓縮圖片屬於那類在技術上根本沒理由牽扯伺服器的工作，所以這裡的工具也就沒有伺服器：解碼、編碼、測量都在你自己的機器上，而頁面的 `Content-Security-Policy` 裡，沒有一個屬於本站的地址可以把圖送過去。

想確認這一點，不管在這裡還是在別處，最省事的辦法都是：把頁面開啟，斷開網路，照壓一張試試。還能用，就說明什麼都沒上傳。[把檔案傳給線上轉換器安全嗎？](https://abox.tools/zh-TW/guides/is-it-safe-to-upload-files/)裡還有另外三個同類檢查。
