favicon 圖示看起來太大的原因是瀏覽器預期的是微小的方形圖示檔案——每邊 16、32 或 48 像素——而且只有在具備這些精確的方形尺寸時才能清晰呈現;如果只留下一張維持完整解析度的過大來源圖片,它在沒有經過柔化、模糊處理或被瀏覽器裁切的情況下,是無法自行縮小的。最常見的原因是直接把 logo 或產品照片以單一檔案的形式丟到網站根目錄,期待作業系統處理所有顯示尺寸,但實際上每個介面(瀏覽器分頁、書籤列、網址列、閱讀清單、工作列捷徑)所要求的像素尺寸都不相同。當伺服器上唯一的圖片是 512 像素或 1024 像素的影像時,瀏覽器就必須在顯示當下將其重採樣至 16 或 32 像素,結果看起來就是「太大」或「模糊」,因為這個檔案從來就不是以那個小尺寸製作的。可靠的解決方法是,從單一來源圖片中,依照瀏覽器預期的精確像素尺寸,產製出一組刻意規劃的方形 PNG 圖示,然後在文件 head 中正確地連結它們。

為什麼 favicon 在瀏覽器中看起來過大
瀏覽器並不把 favicon 視為單一資產。它們會透過 HTML link 元素請求頁面所宣告的任何尺寸,然後挑選最接近顯示介面的尺寸。瀏覽器分頁通常以 16 乘 16 像素呈現,書籤列約 16 到 32 像素,而釘選分頁或工作列介面則可能更高。當網站僅提供單一大型圖片時——例如一張 1024 乘 1024 的 logo——而沒有任何較小的變體,瀏覽器就必須進行積極的縮放。在 1024 像素時看起來清晰的像素,到了 32 像素就會變得混濁,細線會消失,任何細小的字形都會糊成一團。那種感覺上的「太大」問題,其實是「在小尺寸下太粗糙」的問題,原因在於略過了針對各尺寸的渲染步驟。
有三件事會讓情況更糟。第一,來源圖片通常不是正方形:當瀏覽器強制以方形顯示時,橫式 logo 或寬幅產品照會以不可預期的方式被裁切。第二,來源圖片的主要主體可能偏離中心,導致自動裁切落在錯誤的像素上。第三,瀏覽器可能還會在來源圖片的重採樣之上,再套用自己的一套重採樣濾鏡,使柔化效果加倍。當 favicon 檔案是依照精確的方形尺寸,從經過刻意挑選的來源產製出來時,這些問題都不會存在。
一組尺寸正確的 favicon 組合應有的樣貌
一組可靠的 favicon 組合涵蓋一小組可預期的方形像素尺寸,這些尺寸能夠乾淨對應到瀏覽器實際使用的介面。Favicon Generator 可產生 16、32、48、64、128、256 和 512 像素等可選擇的輸出。每個都是以其原生尺寸渲染的真正 PNG 檔案——而不是拉伸的預覽。下表摘要列出可用的尺寸、它們的典型用途,以及應如何看待它們。
| 像素尺寸 | 典型瀏覽器用途 | 為何重要 |
|---|---|---|
| 16x16 | 瀏覽器分頁、1x DPI 的網址列 | 實際上最小的圖示;只有最簡單的形狀在此尺寸下還能辨識 |
| 32x32 | 2x DPI 的瀏覽器分頁、書籤列 | 多數桌面瀏覽器的預設尺寸 |
| 48x48 | Windows 捷徑介面、較大的書籤檢視 | 涵蓋更廣泛的顯示情境 |
| 64x64 | 高 DPI 瀏覽器分頁、密度較高的書籤介面 | 在 retina 與 4K 顯示器上更銳利 |
| 128x128 | 分頁預覽、密度較高的 UI 介面 | 作為桌面與大型尺寸之間的中間步驟很有用 |
| 256x256 | 閱讀清單、較大的分頁圖像 | 一眼就能看出設計的視覺參考 |
| 512x512 | 此工具能提供的最大輸出 | 在進入 manifest 領域前可取得的最大銳利資產 |
只挑選網站真正需要的尺寸,可以讓標記保持精簡。一般小型網站只需要 16 和 32;若要涵蓋釘選分頁與閱讀清單等較密集的用途,則再加上 48 與 64。
從本機圖片產生方形 PNG favicon
從「favicon 太大」到一組乾淨、尺寸正確的圖示組合,最快的路徑就是從一張經過刻意挑選的來源圖片,渲染出每個方形尺寸。Favicon Generator 可以把單一的本機 PNG、JPEG 或 WebP 檔案,轉換成可選擇的方形 PNG,以及對應的 HTML link 程式碼片段,整個過程都在目前的瀏覽器分頁中完成。
- 選擇一張主體靠近中心的 PNG、JPEG 或 WebP 來源圖片。Logo、字母組合、簡單的插圖,以及構圖緊湊的圖示效果最佳,因為中心裁切會保留設計中可辨識的部分。
- 挑選你需要的方形 PNG 尺寸,然後產生 favicon 檔案。可從 16、32、48、64、128、256 和 512 像素中挑選。每個被挑選的檔案都會從解碼後的來源,以其精確的原生尺寸獨立渲染,因此下載到的 32 像素檔案並非拉伸的預覽。
- 檢查並下載每個圖示,然後複製對應的 HTML link 程式碼片段。以 100% 縮放開啟最小的檔案,確認主體仍然清晰可辨,下載你需要的檔案,並複製該工具提供的 rel="icon" link 元素。
中心裁切規則如何影響結果
這個產生器並不提供互動式的裁切編輯器。它採用的是單一可預期的規則:從來源中心擷取盡可能大的正方形,然後將該正方形縮放至各個要求的輸出尺寸。運算很簡單——裁切出的正方形邊長等於來源的較短邊,而兩邊較長邊的差距則平均分配到兩條較長的邊上。
舉例來說,一張寬 1920 像素、高 1080 像素的來源,較短邊為 1080,因此工具會裁切出一個置中的 1080 by 1080 正方形。剩餘的 840 個水平像素(1920 減 1080)會被平分,從左邊裁掉 420 像素、從右邊裁掉 420 像素。然後輸出會被縮取樣到所選的尺寸——以 32 像素的 favicon 為例,每 33.75 個來源像素(1080 除以 32)會塌縮成一個輸出像素。
當來源本身已經將主體置中時,這個規則很有幫助,但它救不了偏離中心的構圖。如果主要元素位於寬幅照片的角落,中心裁切會把它剪掉。在這種情況下,請先刻意裁切來源——例如使用 image cropper——再送入 favicon 流程。
在上線前檢查下載的檔案
產生圖示後,看起來仍然「太大」的常見原因,是最小的檔案從未以其實際顯示尺寸檢視過。產生器雖然會顯示方便的預覽,但瀏覽器分頁實際顯示的圖示,是未經任何縮放的 16 像素 PNG。請以 100% 縮放開啟每個下載的檔案,確認主體在該解析度下依然清晰可辨。
在這個階段還有另外兩項檢查很重要。第一,透明度:PNG 與 WebP 來源會在整個流程中保留原有的透明度,而 JPEG 來源一開始就沒有任何透明度,產生的邊緣會帶有實心背景。如果圖示會出現在淺色與深色兩種瀏覽器主題上,請分別在兩種背景下檢視。第二,對比:非常小的圖示會因為瀏覽器的縮放步驟對鄰近像素取平均,而使細線與細小字形變得模糊。如果 16 像素的檔案看起來是一團模糊的色塊,請簡化來源——減少細節、加粗筆觸、提高對比——然後重新產生。
將 HTML link 程式碼加入你的網站
PNG 下載完成後,需要在文件 head 中加入對應的 link 元素。產生器會輸出遵循 rel="icon" 關係標準格式的程式碼:每一行會標明關係、image/png 媒體類型、精確的方形像素尺寸,以及一個相對於根目錄的檔名。請只複製實際會存在於網站上的檔案對應的那幾行。以下的代表範例遵循與 MDN rel icon 參考資料 相同的結構:
- 16 像素項目:rel 設為 "icon"、type 設為 "image/png"、sizes 設為 "16x16",href 指向 favicon-16x16.png
- 32 像素項目:rel 設為 "icon"、type 設為 "image/png"、sizes 設為 "32x32",href 指向 favicon-32x32.png
- 48 像素項目:rel 設為 "icon"、type 設為 "image/png"、sizes 設為 "48x48",href 指向 favicon-48x48.png
請將每個 PNG 檔案放在 link 所描述的路徑下。預設檔名假設放在網站根目錄,因此將 favicon-32x32.png 上傳到 index.html 旁邊,該程式碼片段即可直接使用,不必修改。如果資產放在不同的目錄中,請編輯每個 href 屬性使其對應。多行 rel="icon" 是正常的——它們讓每個瀏覽器挑選符合當前介面的資源,但最終的選擇仍取決於瀏覽器行為。如果想更深入了解 link 標籤的結構與標準屬性,PNG favicon 尺寸與 HTML link 指南 以更多範例說明了相同的模式。
需要留意的限制
Favicon Generator 的範圍刻意設計得很窄。它只產生 PNG 瀏覽器 favicon 以及對應的 HTML link 元素。它不會建立 ICO 容器檔案、SVG 圖示、Apple touch icon、Android 圖示組合、釘選分頁資產、網頁應用程式 manifest,或平台特定的套件。如果專案需要上述任何項目,必須由另一個獨立流程產製。
輸入端也有限制。瀏覽器會驗證最大 25 MB 的靜態點陣圖檔(PNG、JPEG 或 WebP)。解碼後,超過約 4000 萬像素的影像會在配置任何輸出畫布之前就被拒絕。SVG 與動畫輸入依設計被排除,以避免可執行的向量內容與不明確的影格選擇。來源圖片會在本機解碼,永遠不會被送到處理伺服器,因此隱私界線就是瀏覽器本身。如果來源被拒絕,正確的下一步是先將其轉換為支援的靜態點陣圖格式,再重新嘗試。
透明度同樣有其限制:PNG 能保留 PNG 或 WebP 來源中已經存在的透明度,但 JPEG 來源一開始就沒有任何透明像素,而此工具也不會自行產生。這個產生器也不會修改網站本身、不會上傳檔案,也不會清除快取——如果在上線後仍看到舊的圖示,那是瀏覽器快取的問題,需要另外處理。
如果你正在權衡各種選項,GIF 太大無法傳送?將影格抽出為 PNG 對此有詳細說明。