# 圖片縮放 改尺寸、裁切、轉格式

說個尺寸，拉個框，挑個格式。

> 在瀏覽器裡給 JPEG、PNG 和 WebP 改尺寸、裁切、轉格式。精確到畫素、按百分比，或者定長邊，一張也行，一整個資料夾也行。什麼都不上傳。

本頁是一個完全在你的瀏覽器裡執行的互動式工具，地址是 https://abox.tools/zh-TW/resize-image/。你交給它的任何內容都不會被上傳。下面是這個頁面用文字對該工具的全部說明；要使用它，請開啟這個地址。

## 你的圖片**不會上傳**。這裡根本沒有伺服器。

改尺寸、裁切、換格式，全在你自己的瀏覽器裡、用你自己的硬體完成，用的是瀏覽器本來就帶的影像編碼器。這個工具沒有任何聯網功能，不取東西，也不發東西。就算真有，這個頁面的另一頭也沒有伺服器能接住一張圖。

- ✗ 不上傳
- ✗ 不註冊
- ✗ 沒有水印
- ✓ 斷網能用
- ✓ 開源

## 不上傳怎麼改圖片尺寸

1. **選好你的圖片。** 拖到下面的方框裡，或者點開自己挑。瀏覽器直接從你的硬碟上讀，這期間沒有東西發出去。
2. **想裁就裁。** 裁剪框一開始罩著整張圖，所以你不動它就等於沒裁。拖動它，或者鎖定一個形狀，頭像用 1:1，快拍用 9:16，影片封面用 16:9，再按「拉到最大」取這個形狀下能放進去的最大一塊。每張圖各有各的框，點列表裡任意一行，就改在那張上畫。要是全都想按同一種取景，也有一個按鈕一次搞定。
3. **說清楚出來要多大。** 給寬，給高，或者兩個都給；給一個長邊，這樣直幅構圖和橫幅構圖出來一樣大；或者乾脆給個百分比。兩個框裡留空一個，圖片就保持自己原來的比例。
4. **挑好格式，然後按按鈕。** 可以各自保持進來時的格式，也可以一律寫成 JPEG、PNG 或 WebP。每個結果都寫明它變成了什麼、小了多少，點開就是全尺寸大圖，背後那些數字全在，旁邊還擺著原圖供你對照。整批下載會打成一個 zip。

## 說得更細的版本

[怎麼改圖片尺寸而不把它弄壞](https://abox.tools/zh-TW/guides/resize-an-image/): 改畫素尺寸時畫面到底經歷了什麼：為什麼縮小安全、放大不安全，框的比例跟照片對不上該怎麼辦，以及什麼時候其實該裁而不是縮。

## 工具箱裡還有

- [HEIC 轉 JPG](https://abox.tools/zh-TW/heic-to-jpg/): iPhone 拍的照片，換成什麼都打得開的格式。
- [證件照製作](https://abox.tools/zh-TW/id-photo/): 選好國家，它就照那個國家的規定，一字不差地辦。
- [圖片堆疊](https://abox.tools/zh-TW/stack-images/): 二十張變一張，不用傳二十次，也不用 RAW 轉換器。
- [圖片塗黑與打碼](https://abox.tools/zh-TW/redact-image/): 你遮住的那塊是從檔案裡刪掉的，不是藏在檔案裡。

## 常見問題

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

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

### 只給寬、不給高會怎麼樣？

高按圖片自己的比例算出來，這幾乎總是你要的：說「寬 1920」，意思就是「寬 1920，高該多少是多少」。兩個都填上，它們就可能跟圖片本身的比例對不上，也只有這時候才會冒出「比例對不上怎麼辦」那個選擇：整張放進框裡、鋪滿並裁掉溢位、用背景色墊成這個框、或者直接拉伸認了變形。

### 縮小會掉畫質嗎？

縮小不會，至少你看不出來：進去的畫素比出來的多，留下的細節都是真的。放大則補不出當初沒拍到的東西，結果是同一張圖的一份更糊的副本，不會更清楚，所以「絕不把圖片放大」預設開著。真正要花點代價的是之後那次重新編碼，格式是 JPEG 或 WebP 時才有，而品質滑塊就是你在那裡花錢的地方。

### 能給每張圖裁得不一樣嗎？

能，而且預設就是這樣。列表上每張圖都帶著自己的框，按自己的畫素算，點某一行，那張圖就連著它自己的框和鎖定的形狀一起回到預覽裡。你動其中一張，不會影響別的。每個框一開始都罩著整張圖，所以你從沒畫過的那張，壓根沒被裁。

### 能一次給整批圖裁成一樣的嗎？

能，用預覽下面那個按鈕。它會給其餘每張圖同樣的相對區域，也就是各自寬高的同樣比例。一批本來尺寸就一致的截圖或者匯出圖，那就是完全相同的一個框，頁面也會這麼寫。要是鎖了形狀，它會在那塊區域裡給每張圖取這個形狀下最大的一個框，所以先按 1:1 再按這個按鈕，橫直混雜的一個資料夾就能全出方圖。之後每個框還是照樣能改。

### 它能讀、能寫哪些格式？

你的瀏覽器能解碼的它都能讀，實際上就是 JPEG、PNG、WebP、GIF、BMP，現在多數瀏覽器還包括 AVIF。寫出來的是 JPEG、PNG 和 WebP，因為瀏覽器內建的編碼器就這三種。選「保持原格式」時，JPEG 還是 JPEG，PNG 還是 PNG；瀏覽器寫不了的格式，比如 GIF 和 BMP，會出成 PNG，因為它既保得住透明，也保得住大片純色。

### 存成 JPEG 的話，透明會怎麼樣？

會被背景色填掉，因為 JPEG 沒有 alpha 通道可以裝它。顏色由你挑，預設白色，這是多數人想要的，也是幾乎所有別的工具會一聲不吭直接替你做的。墊成固定尺寸時用的也是這個顏色。存成 PNG 或者 WebP，透明就原樣過來。

### 它會去掉 EXIF 和 GPS 資訊嗎？

真正被處理過的圖會，屬於順帶的效果：裁切或者縮放都得把畫面解碼成畫素、再把畫素編回去，而一張畫布上只有畫素，不帶任何標籤，所以位置、相機型號和時間戳乾脆就沒寫進新檔案。你完全沒動過的檔案是另一回事，它逐位元組原樣還給你，標籤一個不少。想清掉後設資料、畫面別動，那該用 [EXIF 檢視與清除](https://abox.tools/zh-TW/exif-editor/)，它只重寫容器，不重新壓縮任何東西。

### 這個跟圖片壓縮有什麼區別？

這個管的是尺寸：你說要多少畫素，它就給你多少畫素。[圖片壓縮](https://abox.tools/zh-TW/compress-image/)管的是檔案大小：你說只准多少 KB，它去找剛好塞得進去的最高畫質，只有畫質單獨夠不到才動尺寸。人家跟你說「寬 1200 畫素」，你就來對了地方；人家說「不能超過 500 KB」，那邊更對路。

### 免費嗎？要註冊嗎？

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

### 斷網能用嗎？

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

## 這條隱私承諾怎麼核實

- **你的圖片沒地方可去。** Content-Security-Policy 把這個頁面允許聯的地址全列了出來，沒有一個是本站的。這裡沒有能收檔案的介面，程式碼裡也沒有一行會把檔案發出去，就算真有那麼個介面也一樣。
- **這裡沒有任何東西會去聯網取資料。** 整個 `src/` 裡，一個 `fetch`、一個 `XMLHttpRequest`、一個 `sendBeacon` 都找不到。縮放就是往畫布上做一次 `drawImage`，再來一次 `canvas.toBlob`，縮放器和編碼器都是你瀏覽器裡早就裝好的。
- **沒人要求改的檔案，一個位元組都不改。** 沒裁、沒縮、也沒換格式，那你選的那個檔案會被逐位元組原樣還給你，不會重新存一遍。這不只是客氣：正因如此，這個工具不可能悄悄替你重編一張圖，也不可能把你只想看一眼的那張圖的後設資料悄悄丟掉。
- **Google 載入了什麼，又拿不到什麼。** 廣告指令碼和統計指令碼來自 Google，捐助按鈕來自 Buy Me a Coffee。關於你圖片的資訊，一條都沒給它們。讀檔案、裁切、縮放、寫檔案的每一行程式碼都從本站發出，也都擺在儲存庫裡。
- **斷網照樣能用。** 斷開網路，這個工具跟原來一模一樣，因為它本來就沒有聯網這一步。這是最省事的一條證明。

**你可以自己核對。**上面這些不用你信。這個頁面是儲存庫裡的模板和配置產生出來的，構建指令碼你能讀，也能自己跑一遍，跑出來的結果就提交在 `dist` 分支上。拿實際發給你的內容，跟你自己從原始碼構建出來的結果對一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先讀的幾個檔案：`config/site.toml` 裡是 Content-Security-Policy，`src/geometry.js` 裡是「留下哪一塊、出來多大」的那套算術，`src/codecs.js` 裡是那一次 `drawImage` 呼叫，裁切和縮放是在同一步裡做完的。
