免費轉換器

SVG 轉 PNG 轉換器

將向量 SVG 檔案轉換為高品質的點陣 PNG 圖像。在瀏覽器中輕鬆自訂輸出比例和背景顏色。

拖放 SVG 到這裡

最大支援 50MB

關於此工具

SVG(可縮放向量圖形)將影像描述為一組幾何圖元(路徑、形狀、文字、漸層),可縮放到任何尺寸而不損失品質。 PNG 以固定解析度儲存單一矩形像素網格。將 SVG 轉換為 PNG 是一個光柵化步驟:SVG 的繪圖指令以選定的像素大小進行評估,並將產生的位圖編碼為 PNG。輸出在您指定的尺寸下看起來清晰,但如果放大則會像素化。

此轉換器使用瀏覽器內建的 SVG 引擎呈現 SVG。 SVG 被載入到 Image 元素中,以選定的輸出尺寸繪製到 HTML5 畫布上,並透過 canvas.toBlob 匯出為 PNG。由於瀏覽器會進行光柵化,因此複雜的 SVG 功能(漸層、濾鏡、遮罩、作為靜態畫面的動畫)的渲染方式與在真實網頁上的渲染方式相同。

SVG 到 PNG 轉換中最重要的決定是目標大小。 SVG 與解析度無關,因此選擇與實際使用情況相符的 PNG 大小可以避免過度配置(縮圖大小的圖示的巨大檔案)和配置不足(稍後放大時輸出模糊)。常見目標:圖示為 32×32 或 64×64,標誌為 256×256 或 512×512,英雄圖形為 1024×1024,視網膜品質資源為 2048×2048。

為什麼將 SVG 轉換為 PNG

SVG 對於網路和現代設計工具來說非常棒,但對於許多其他環境來說卻很糟糕。電子郵件用戶端呈現 SVG 的方式不一致;有些人將其視為安全風險而阻止。較舊的辦公室軟體、某些 CMS、第三方服務和幾乎所有照片列印管道根本不接受 SVG。轉換為 PNG 會產生一個普遍接受的柵格,在所選尺寸下看起來相同。

PNG 還可以可靠地嵌入到辦公室文件、幻燈片和 PDF 中,而無需依賴接收者的 SVG 渲染器。對於需要在多個平台上一致顯示的徽標和圖形,PNG 是更安全的選擇,儘管它失去了 SVG 最初具有吸引力的分辨率獨立性。

使用方法

選擇您的目標尺寸,渲染。瀏覽器進行光柵化。

  1. 上傳 SVG 文件: 將 SVG 拖曳到上傳區域或按一下進行瀏覽。支援最大 50 MB 的文件,但典型的 SVG 遠低於 1 MB。獨立的 SVG 效果最好;透過 xlink:href 引用外部圖像到遠端 URL 的 SVG 可能會呈現不完整。
  2. 選擇輸出尺寸: 預設值是 SVG 的本機 viewBox 尺寸,但您可以覆寫為任何像素大小。選擇符合您實際使用情況的尺寸 - 避免以 32×32 顯示的圖示產生 4K PNG。
  3. 渲染: 瀏覽器解析 SVG,按照請求的尺寸繪製到畫布上,並將畫布匯出為 PNG。具有過濾器或大量路徑數的複雜 SVG 可能需要一些時間;簡單的圖示立即呈現。
  4. 下載PNG: 儲存文件。 SVG 中的透明度(繪製形狀之外的任何內容)在 PNG 中保留為 Alpha 通道。

常見用例

技術細節

SVG(W3C 建議)是一種基於 XML 的向量格式,包含路徑、基本形狀(矩形、圓形、橢圓形、直線、多邊形、折線)、文字、漸變(線性漸變、徑向漸層)、濾鏡、遮罩和剪輯路徑元素。瀏覽器解析 XML、建立 DOM、套用 CSS 並在頁面渲染期間光柵化結果。

該轉換器將 SVG 載入到 HTMLImageElement 中(這會觸發瀏覽器的正常 SVG-as-image 渲染路徑),然後透過 drawImage 將其繪製到畫布上。使用canvas.toBlob('image/png') 將畫布匯出為PNG。輸出中的確切像素與 SVG 在瀏覽器標籤中以相同大小呈現的像素相符。

邊緣情況:透過 Image 元素使用時,並不總是支援使用foreignObject 的 SVG。由於 CORS,引用外部資源(xlink:href 到不同網域)的 SVG 可能無法載入。 SMIL 動畫和 JavaScript 驅動的動畫僅渲染為初始幀。

最佳實踐

常見問題

我的 SVG 轉換為 PNG 後品質會下降嗎?
向量到光柵的轉換意味著影像變成基於像素的並且不能再無限縮放。選擇高解析度以確保 PNG 在您想要的顯示尺寸下看起來清晰。
PNG 格式有什麼用途?
PNG(可攜式網路圖形)主要用於具有透明度的圖形、螢幕截圖、標誌、圖示。
有什麼限制需要注意嗎?
支援最大 50MB 的檔案。非常大或複雜的文件可能需要更長的時間來處理。所有轉換都發生在您的瀏覽器中,因此處理速度取決於您的裝置。
我的影像在轉換過程中是否保密?
是的。您的 SVG 檔案完全在瀏覽器中使用 Canvas API 和 JavaScript 進行處理。沒有任何內容上傳到任何伺服器 - 檔案直接從您的裝置傳輸到轉換器,然後返回您的裝置。
文字是呈現為文字還是路徑?
文字在輸出 PNG 中被光柵化為像素。輸出不再可搜尋或可選擇。如果您的 SVG 使用瀏覽器中不可用的字體,文字可能會以以後備字體呈現;在渲染之前將文字轉換為 SVG 中的路徑以確保外觀。
我的 SVG 是否上傳到伺服器?
不會。 SVG 解析和渲染發生在您的瀏覽器中; PNG 編碼發生在您的瀏覽器中。該文件不會離開您的裝置。
為什麼我轉換後的 PNG 是空白的?
常見原因:SVG引用外部圖片,由於CORS導致載入失敗; SVG 使用圖像元素渲染路徑不支援的功能(foreignObject、某些過濾器);SVG 具有零維 viewBox。直接在瀏覽器中開啟 SVG 以在轉換之前確認其渲染。
我可以在腳本中將 SVG 轉換為 PNG 嗎?
是的——對於批次作業,使用 Sharp 或 puppeteer 的 Node.js 設定將 SVG 渲染為 PNG,與瀏覽器具有相似的保真度。該工具用於在瀏覽器中進行一次性轉換,無需安裝任何東西。