JPEG 或 PNG 上的 DPI 是儲存在檔案 metadata 中的一個列印密度指令,用來告訴排版軟體和印表機在每一英體的輸出上應該放入多少像素,更改它並不會新增像素,也無法提升影像實際的細節。一張 3000 乘 2400 像素的影像,無論檔案標示為 72 DPI 或 300 DPI,都仍然是 3000 乘 2400 像素;改變的只有下游軟體根據該標籤所計算出的預期列印尺寸。DPI 值只是一小塊 metadata,程式在計算實體尺寸時會讀取它,而這塊 metadata 正是像 Image DPI Changer 這類工具在不更動底層影像資料的情況下所寫入或重寫的內容。

DPI 在 JPEG 或 PNG 上實際代表的意義
JPEG 透過 JFIF APP0 區段中的兩個小數字 Xdensity 和 Ydensity(以每英體點數為單位)來儲存列印密度。PNG 則將同樣的概念儲存在 pHYs chunk 中,使用一個整數的每公尺像素值,W3C PNG 規範將其定義為在 PNG 中記錄實體像素尺寸的唯一可攜方式。在這兩種情況下,這些數字都只是一個提示,而不是用來衡量圖片有多清晰。影像本身已有固定的像素數,DPI 只是告訴下游軟體如何將這些像素對應到紙張上或排版中。
這就是為什麼網站上 72 DPI 的照片不見得比同一場景 300 DPI 的掃描檔差。網頁瀏覽器會依照 HTML 或 CSS 設定的大小來呈現影像,因此通常會完全忽略 DPI 欄位。印表機、頁面排版軟體和匯出流程會讀取這個欄位,並用它來計算實體尺寸;如果該值與工作流程不符,輸出結果就會印得太小、太大,或是墨水和紙張的密度不正確。
Illustrator 如何讀取並使用影像 DPI
Adobe Illustrator 是一個向量編輯器,因此 Illustrator 文件上的 DPI 標籤與置入的 JPEG 或 PNG 上的 DPI 標籤是兩個不同的概念。當你將點陣影像置入到畫板上時,Illustrator 會讀取檔案儲存的 DPI,並在邊框旁顯示實體尺寸。一張標示為 300 DPI 的 3000 乘 2400 像素 JPEG 會顯示為 10 乘 8 英體的置入;同一張標示為 72 DPI 的檔案則會顯示為大很多的尺寸,因為 Illustrator 是用像素數除以 metadata 值來計算。
在 Illustrator 文件內部,文件本身的點陣效果解析度存放在 Effect > Document Raster Effects Settings。該值控制了像陰影、內光暈和材質填色等點陣效果在你要平坦化透明度時時如何烘焙進檔案,同時也是置入的點陣影像在 Illustrator 內進行點陣化時所使用的預設解析度。更改此值並不會重寫已置入 JPEG 或 PNG 中的 DPI metadata;它只會改變 Illustrator 計算尺寸的方式,以及它為該檔案進行點陣效果算圖的方式。
透過 Illustrator 的匯出設定更改 DPI
當你將置入的影像或 Illustrator 作品匯出為 JPEG 或 PNG 時,Illustrator 提供一個會將 DPI 寫入匯出檔案的解析度欄位。若要為現有影像設定而不動到你的文件,請將檔案置入到畫板上、選取它,然後使用 File > Export > Export As。選擇 JPEG 或 PNG,然後在選項對話框中找到 Resolution 或 ppi 欄位,輸入例如 150、300 或 600 的值。
這個匯出路徑雖然好用,但對列印前準備來說會帶來兩個重要的副作用。首先,Illustrator 會重新編碼影像:JPEG 會經過一次全新的編碼重建,而任何 PNG 都會透過 Illustrator 自有的點陣化器重新壓縮,這可能會細微地改變位元組串流以及任何失真壓縮。其次,當所選解析度與原始像素數不一致時,Illustrator 會在匯出過程中重新取樣影像以符合設定,這實際上會改變結果檔案的像素尺寸。對於只需要原始檔案帶有正確 metadata 的印刷商來說,這種重新編碼超出了工作所需的變更。
不開啟 Illustrator 在本機設定影像 DPI
對於來源檔案已經有正確像素數、只需要更新 metadata 的專案,最乾淨的做法是完全跳過 Illustrator,直接把 DPI 欄位寫入 JPEG 或 PNG。一個本機瀏覽器工具可以讀取現有的 JFIF 或 pHYs 區塊,接受像 72、150、300 或 600 這類整數 DPI,然後下載一個帶有新欄位的檔案副本。像素和壓縮過的影像位元組會原封不動地複製,因此下載的檔案除了那一小塊 metadata 外,與開始的檔案完全相同。
當印刷商要求 300 DPI 而你已經用 72 匯出檔案時、當你想在不放大影像的情況下符合紙張尺寸時,或是當排版範本預期特定密度標籤時,這種方法都很有用。它也保留了原始壓縮串流的完整性,當檔案來自相機、掃描器或先前的無失真儲存,而你不想再經歷一次失真處理時,這點尤其重要。
如何使用 Image DPI Changer 更新影像 DPI
- 在 Image DPI Changer 頁面上選擇一個不超過 25 MiB 的 JPEG 或 PNG,並查看該頁面在檢查檔案簽章和檔頭後所回報的偵測到的列印密度 metadata。
- 輸入一個整數的目標 DPI,例如 72、150、300 或 600;此數字會更新檔案 JFIF 或 pHYs 區塊中的列印密度指令,但不會改變像素尺寸。
- 選擇 Update image DPI,下載該頁面產生的本機副本,並透過在 Illustrator 的 Place 對話框或目的端排版程式中開啟下載檔案來驗證預期尺寸。
為什麼 DPI 更新後像素保持不變
僅修改 metadata 的工具之所以可行,是因為 DPI 欄位與像素網格是分開儲存的。在 JPEG 中,JFIF APP0 區段位於檔案開頭附近,在壓縮掃描資料之前,W3C JFIF 1.02 規範定義了 units、Xdensity 和 Ydensity 的位元組。在 PNG 中,pHYs chunk 出現在輔助 chunk 之間,使用一個整數的每公尺像素欄位,後面接著一個單位位元組。寫入這兩個位置都不需要對像素資料進行解碼與重新編碼,因此檔案的壓縮位元串流得以保留。
實際上的結果是,同一個標示為 72 DPI 的 JPEG 檔案,在不重新取樣、不銳利化、不裁切,且不會因第二次 JPEG 編碼而產生任何品質損失的情況下,變成標示為 300 DPI 的同一個壓縮位元串流。PNG 讀回的值可能因為一個很小的四捨五入誤差而與要求的 DPI 略有差異,因為 PNG 儲存的是整數的每公尺像素數,而公尺與英體之間的轉換無法被完美表示;這是儲存精度的限制,並非實際影像像素的變更。
為你的列印或排版目標選擇合適的 DPI
根據你想要的實體尺寸和已有的像素數來挑選 DPI。兩者的關係是像素除以 DPI 等於英體。一張寬度為 3600 像素的影像,若預期列印成 12 英體,則為 300 DPI,因為 3600 像素除以 300 DPI 等於 12 英體。對於同樣的原始像素,如果列印尺寸較大,DPI 值會下降;如果列印尺寸較小,DPI 值會上升;像素數永遠不會改變,沒有任何 DPI 值能憑空產生新的細節。
對於大多數手拿尺寸的彩色照片列印工作,300 DPI 是常見的目標。對於從遠距離觀看的大型海報,150 DPI 通常已經足夠。對於草稿校樣和接觸印樣,72 DPI 符合一般螢幕算圖,並使檔案的列印尺寸與其在螢幕上的大小一致。當印刷商指定像素數、匯出設定檔、出血或檔案格式時,請依照該印刷商文件化的要求,而不要只相信單一的 DPI 標籤。
| DPI 值 | 常見使用情境 | 對同一像素網格的影響 |
|---|---|---|
| 72 | 螢幕參考、螢幕校樣 | 同一像素可產生的最大實體列印尺寸 |
| 150 | 草稿列印、從遠處觀看的大型海報 | 中等實體列印尺寸,適度的像素密度 |
| 300 | 手拿尺寸的標準照片和文件列印 | 較小的實體列印尺寸,較高的每英體像素密度 |
| 600 | 美術作品、細部線條、小尺寸列印 | 同一像素可產生的最小實體列印尺寸 |
對於列印尺寸固定、需要更改像素數才能符合的專案,僅更新 metadata 是錯誤的工具,需要真正的調整大小;關於 使用公式轉換 DPI 的相關指南會更詳細地說明這個區別。當像素已經正確、只需要讓 metadata 跟上時,原地更新 DPI 能讓檔案保持乾淨且可驗證。
在目的端工作流程中驗證已更新的 DPI
下載更新後的檔案後,請在將用來列印或排版的程式中確認結果。在 Illustrator 的 File > Place 對話框中開啟檔案並讀取回報的實體尺寸;它現在應根據相同的像素尺寸反映出新的 DPI 值。如果排版程式讀到的 DPI 與你設定的不同,該程式可能正在讀取專注的 metadata 工具未重寫的 EXIF、XMP 或廠商擴充。在此情況下,請移除衝突的 metadata,或在排版程式內手動設定置入尺寸。
從 Image DPI Changer 下載的副本保留了原始壓縮影像資料的完整性,因此除了 DPI 標籤外,檔案在磁碟上的行為與原始檔案一致。在核准列印之前,請以最終輸出尺寸測試小字、邊緣和照片;僅更新 metadata 無法彌補原始像素不足的問題,沒有任何 DPI 值能將低解析度的掃描檔變成高解析度的列印品。
如果你正在權衡各種選項,轉換為 300 DPI:在匯出前驗證列印尺寸 對此有詳細說明。