線上圓角處理圖片是否安全,取決於該工具是否只在當前瀏覽器分頁內本地處理你的檔案,而從不將其傳輸到遠端伺服器,Round Image Corners 正是完全依照這個契約打造的。它會解碼本機的 JPG、PNG 或 WebP,在同尺寸的畫布上裁切成圓角矩形,然後匯出帶有透明角落像素的 PNG,整個過程中間完全沒有上傳步驟。工具名稱中的「online」一詞,並不等於「在別人的伺服器上」,這個區別正是多數隱私疑慮所忽略的地方:瀏覽器端工具可以透過公開網址存取,卻仍使用與桌面應用程式相同的 File 與 Blob API 來處理你的像素。實際上的差異在於,那些位元組究竟是透過 fetch、XHR 或 WebSocket 呼叫離開瀏覽器,還是留在記憶體中,等到你自行點擊下載,檔案透過一般儲存對話框交還給你。

「線上使用安全」對圖片工具來說實際代表什麼
當你所選取的同一組位元組從未到達一台並非由你掌控的機器時,圖片工具才算贏得「線上使用安全」這個標籤。最簡單的驗證方式,就是在點擊任何東西之前先打開瀏覽器的網路面板:如果頁面在初次渲染時只載入自己的 HTML、CSS、JavaScript 與字型檔案,並且從未把你選取的圖片傳出去,那你看到的就是一個瀏覽器端工具。反之,若在你選擇檔案的瞬間,就看到一個帶著你的圖片、發送到第三方網域的 POST 請求,那麼這張照片已經被上傳了,即便頁面用親切的文案讓你安心。
有幾項設計選擇是安全瀏覽器端工具的可靠信號:
- 檔案是透過 <input type="file"> 或拖放 File 物件開啟,而非透過伺服器端點。
- 操作使用瀏覽器內建的 Canvas、FileReader 與 Blob API,而非遠端影像處理程式庫。
- 下載是透過 URL.createObjectURL 對 Blob 提供,而非指向 CDN 或被追蹤的重新導向連結。
- Object URL 在被取代或元件關閉時會被撤銷,因此暫存參照不會殘留。
- 每一項限制與每一個失敗都會以頁面上的可見訊息呈現,而非悄悄產生部分輸出。
同樣的隱私問題也適用於其他瀏覽器端轉檔工具。當 JPG 被轉成 PNG 時,檔案無論如何都必須重新編碼,而值得信賴的工具與不安全的工具之間,唯一不同的是那些位元組在重新編碼期間流向哪裡。背後的根本問題是一致的:轉檔工具究竟是停留在分頁之內,還是把位元組繞經別人的 API?
Round Image Corners 如何將你的照片保留在瀏覽器中
Round Image Corners 全程遵循瀏覽器端模式。當你選擇一個本機檔案時,工具會將其儲存為 File 物件,為預覽建立一個暫時的 Object URL,將像素解碼進一個離屏的 HTMLCanvasElement,並且從未對該資料呼叫 fetch 或 XMLHttpRequest。裁切操作使用標準的 canvas 路徑 API:先用 CanvasRenderingContext2D.roundRect 建立圓角矩形,再透過 CanvasRenderingContext2D.clip 套用,將繪製遮罩限制在圓角形狀內。原始來源以自然尺寸繪製一次,圓角路徑外的像素保持完全透明,然後畫布被編碼為 PNG。
由於每個步驟都對應瀏覽器的基本元件,處理過程中你的圖片唯一存在的位置就是頁面的記憶體。下載透過 canvas.toBlob 產生,包裝成一個全新的 Blob URL,並以同源點擊觸發。暫時的 Object URL 在被取代或元件關閉時立刻撤銷,因此一個過期的下載連結不會為了另一張圖片重新出現。過期的非同步匯出同樣受到防護:更改來源檔案或圓角半徑會使先前的結果失效,因此先前選擇的慢速編碼無法覆寫你正在檢視的較新預覽。
可見的結果資訊列是另一項隱私加分。它會回報精確的輸出尺寸、實際套用的整數像素半徑、輸出格式,以及大致的位元組大小,這代表你可以在頁面上驗證,檔案並未在過程中被悄悄縮放、裁切或重新壓縮到令人意外的程度。
本機照片圓角處理,逐步教學
- 點擊檔案選擇器並選擇一個本機的 JPG、PNG 或 WebP。請確認檔案磁碟大小不超過 25 MiB,且解碼後的像素尺寸落在共用瀏覽器安全預算內:每邊 20,000 像素、總計 40 megapixels。超出這些限制的檔案、空檔案、不支援的類型,以及解碼失敗,全部會以可見錯誤呈現,而不是靜默後備處理。
- 將圓角半徑滑桿從 1% 移動到 50%。這個百分比刻意綁定到影像的較短邊:以 400 乘 200 像素的橫向圖為例,25% 設定會產生 50 像素的圓角半徑;而對於 200 乘 400 像素的直向圖,同樣的 25% 設定會取用寬度,產生同樣的 50 像素圓角半徑。結果資訊列會顯示即將使用的整數像素精確數值。
- 選擇 Round corners。檢視同尺寸的 PNG 預覽,然後下載檔案。輸出保留來源的原始寬度與高度;只有角落像素會變成透明。下載檔案的檔名以 -rounded-corners.png 結尾,因此在你的下載資料夾中格式變更一目了然。
若想嘗試不同的圓角半徑,只要再次移動滑桿並選擇 Round corners 即可。一旦圓角半徑變動,先前的結果就會失效,並在無需重新上傳任何東西的情況下產生新的同尺寸 PNG,因為一開始就沒有上傳任何東西。
格式、檔案大小與像素限制一覽
| 限制 | 數值 | 超出時會發生什麼 |
|---|---|---|
| 支援的輸入格式 | JPG、PNG、WebP | 其他格式會以可見錯誤拒絕。 |
| 磁碟上的最大檔案大小 | 25 MiB | 較大的檔案會在解碼前被拒絕。 |
| 每邊最大像素數 | 20,000 | 解碼後超出此限制的影像會被拒絕。 |
| 最大總 megapixels | 40 MP | 解碼後超出此限制的影像會被拒絕。 |
| 圓角半徑範圍 | 較短邊的 1% 到 50% | 超出範圍或非數值會被拒絕。 |
| 輸出格式 | 僅 PNG | 必須使用 PNG,因為 JPEG 無法儲存透明像素。 |
| 輸出尺寸 | 與來源相同 | 畫布在編碼前絕不會被調整大小。 |
這些限制會在圓角處理執行之前進行檢查,而非之後。空檔案、不支援的 MIME 類型、無法使用的 canvas 支援、無效的圓角半徑值,以及 PNG 編碼失敗,全部會以可見錯誤呈現,而不是產生部分或靜默的下載。
輸出品質、透明與中繼資料的取捨
輸出 PNG 會保留圓角矩形內的每一個像素不變,並讓角落像素保持完全透明。這代表 PNG 或 WebP 來源中既有的透明度(例如你在分層編輯器中已遮罩的影像),會在裁切形狀內被保留下來,但仍受限於正常的瀏覽器解碼與 PNG 編碼。圓角半徑會四捨五入到輸出像素的整數,因此渲染出的弧線在來源的自然解析度下是清晰的,而非因次像素近似而顯得模糊。
有幾項務實的取捨值得留意。首先,輸出永遠是 PNG,即便來源是 JPG。必須使用 PNG 是因為 JPEG 無法儲存透明角落像素;這代表 JPG 來源會被解碼再重新編碼,輸出位元組大小可能大於原始檔案。其次,EXIF 中繼資料不會被帶過來。瀏覽器的 canvas 匯出會從解碼後的點陣圖建立全新的 PNG 像素,canvas 管線並不會將來源中繼資料複製到產生的 Blob 中。第三,工具會原樣裁切來源:它不會先縮小平面的預覽再匯出那個較小的版本。預覽可能為了版面而縮放,但下載的 PNG 永遠反映來源的完整尺寸。如果你需要保留 EXIF 或處理可還原的來源檔案,請另行使用分層桌面編輯器。
何時桌面編輯器是更好的選擇
瀏覽器端圓角處理涵蓋了常見情境:單一影像、四個圓角共用同一個半徑、透明角落、不調整大小。有幾類工作超出它的範圍,這時你應該改用桌面或分層工具:
- 個別圓角半徑:本工具對四個圓角套用同一個半徑。如果你需要不對稱的圓角,請使用向量或分層編輯器。
- 可還原的編輯:PNG 匯出在工具內無法復原。若你想保留原始檔案不動,請在複製的圖層上編輯。
- EXIF 與中繼資料保留:canvas 管線不會傳遞中繼資料,因此相機的色彩描述檔、GPS 或版權欄位都會在匯出時被剝除。
- 批次處理:一次只能處理一張影像。若有數十個檔案,使用本機腳本或桌面批次動作會更快。
- 印刷色彩管理、陰影、漸層、裝飾邊框等設計處理:這些屬於完整影像編輯器的範疇。
就軟化單張本機照片圓角的日常用途而言,例如大頭貼、縮圖、應用程式卡片或社群貼文,Round Image Corners 的瀏覽器端路徑是一個尊重隱私的選項。影像從未離開你的分頁,輸出是同尺寸的透明 PNG,每一項限制與錯誤都在頁面上可見,而非隱藏在誤導性的成功狀態之後。
若你正在權衡選項,Round Image Corners 替代方案:一款本機瀏覽器工具 有詳細說明。
若你正在權衡選項,線上使用純色影像產生器是否安全? 有詳細說明。