實用創作流程

放大畫素畫不模糊:檢查匯出的檔案

小塊炭灰色立方體旁是帶一面琥珀色的象牙白階梯結構
關於放大形態並保留邊緣的抽象編輯插畫。

遊戲裡的包裹圖示在原始尺寸下很清晰,放到商店頁面或開發日誌裡卻變軟了。如果繪圖已經透過審核,就不必重新生成。你需要的是把現有畫素準確重複的大尺寸檔案。

我們在 Ciyo 的檔案工作區用短指令碼繪製了虛構的 16×16 包裹。它是只有四種顏色的受控測試圖,不是照片,也不是影像模型的生成結果。你可以下載 64×64 和 128×128 檔案,自己檢查這次縮放。

從原始尺寸的 PNG 開始

先保留未經修改的原始母檔,確認檔案的真實尺寸。看起來像畫素畫的大圖,可能已經含有柔化邊緣和數百種顏色。忠實放大會保留這些問題,並不能據此確定原生畫素網格。

本例原圖有 4 種不透明顏色,alpha 只有 0 和 255,檔案為 170 位元組。Ciyo 用整畫素矩形繪製它,並把原圖留在匯出檔案旁。實際專案中應匯入已確認的 PNG,不要讓代理重新畫一遍。

完整 Ciyo 產品畫面,顯示原始小包裹及代理核對的尺寸和顏色
真實原圖只有 16×16 畫素,在畫布上很小,因此正文再次列出尺寸和透明度。

選擇整數倍放大

放大 4× 時,每個原畫素變成 4×4 方塊;放大 8× 時,則變成 8×8 方塊。每個畫素佔據相同面積。像 100×100 這樣的任意目標尺寸,無法把 16×16 網格均勻分成整數大小的方塊。

明確要求用最近鄰插值縮放檔案,並另存輸出。提高細節或做成高畫質等說法可能引導工具重新繪圖。這裡改變的是檔案尺寸,保留的是已經確認的圖案。

複製這段檔案工作區提示詞
使用這張現有的 16×16 RGBA PNG,不要重畫或生成影像。分別另存最近鄰放大 4×(64×64)和 8×(128×128)的檔案。重新開啟匯出檔案,確認每個 k×k 方塊與對應原畫素完全相同,包括 alpha。報告尺寸、不透明顏色數量和位元組數。保留未經修改的原始母檔,把匯出檔案儲存到畫布。

同時核對畫素和透明度

畫布預覽好看還不夠。下載 PNG,解碼後把每個輸出畫素與對應原畫素比較。alpha 也要參與核對:淺色畫布上,不透明背景或柔化的透明邊緣可能不明顯。

獨立解碼比較確認兩種匯出檔案都是 0 個通道不匹配,仍有 4 種不透明顏色和二值透明度。較大的位元組數只描述這幾個小測試檔案,不能預測你的素材大小。

本次示範實際下載的檔案
檔案尺寸不透明顏色位元組數
未經修改的原圖16×164170
最近鄰 4×64×644261
最近鄰 8×128×1284376

用平滑對照揭示差異

對照板把原圖、最近鄰匯出和故意製作的雙線性插值版本顯示成相同的視覺尺寸。前兩者保留相同的方形轉折;平滑版本混合邊緣併產生中間顏色。它被標為對照,而不是合格匯出。

Ciyo 的對照板是 960×400 點陣圖,包含三個帶標籤的區域,原生檔案仍單獨保留。如果畫布或瀏覽器平滑了預覽,應先用合適的檢視器檢查下載檔案,再判斷匯出是否變了。

完整 Ciyo 畫布,顯示原圖、兩種放大檔案和明顯柔化的雙線性對照板
實際 Ciyo 輸出,已使用適合畫布的縮放。原圖和最近鄰區域保持方形邊緣,最右側故意展示平滑效果。

另行檢查目標頁面的顯示設定

檔案可以完全正確,網站或遊戲卻再次把它顯示得柔和。MDN 介紹了網頁縮放影像時的 image-rendering 控制。請測試實際顯示尺寸和瀏覽器;正確的 PNG 不會自動設定網頁 CSS 或遊戲引擎的紋理過濾。

若目標是清晰且等大的畫素方塊,優先採用整數倍顯示。本例核對的是匯出畫素,並未驗證你的引擎、動畫時序或所有瀏覽器的縮放行為。

保留原始母檔,交付所需尺寸

在輸出檔名中寫清倍數和尺寸,讓同事能區分原始母檔與交付檔案。把原圖、合格匯出和縮放說明一起儲存。後續修改應從原生原始母檔開始,而不是從截圖或已經被平滑的預覽開始。

可以用下面的樣本重複畫素核對。如果圖示在原生尺寸下已經模糊,先回到繪圖修復網格。最近鄰放大隻能保留已有資訊,不能恢復原圖從未包含的細節。

實用問答

最近鄰縮放會增加細節嗎?

它重複現有畫素,適合保留已確認的網格,不會發明新的繪圖細節。

為什麼畫布預覽可能顯得柔和?

檢視器可能平滑縮放影像。請檢查下載檔案,並另行核對目標頁面的顯示設定。

可以選擇任意輸出尺寸嗎?

整數倍能讓每個原畫素成為同等大小的方塊。任意尺寸需要不均勻方塊或另一種重取樣。

放大一個已確認的圖示

在 Ciyo 開啟原始 PNG,要求另存整數倍匯出,並核對畫素後再替換交付檔案。