實用創作流程
放大畫素畫不模糊:檢查匯出的檔案

遊戲裡的包裹圖示在原始尺寸下很清晰,放到商店頁面或開發日誌裡卻變軟了。如果繪圖已經透過審核,就不必重新生成。你需要的是把現有畫素準確重複的大尺寸檔案。
我們在 Ciyo 的檔案工作區用短指令碼繪製了虛構的 16×16 包裹。它是只有四種顏色的受控測試圖,不是照片,也不是影像模型的生成結果。你可以下載 64×64 和 128×128 檔案,自己檢查這次縮放。
從原始尺寸的 PNG 開始
先保留未經修改的原始母檔,確認檔案的真實尺寸。看起來像畫素畫的大圖,可能已經含有柔化邊緣和數百種顏色。忠實放大會保留這些問題,並不能據此確定原生畫素網格。
本例原圖有 4 種不透明顏色,alpha 只有 0 和 255,檔案為 170 位元組。Ciyo 用整畫素矩形繪製它,並把原圖留在匯出檔案旁。實際專案中應匯入已確認的 PNG,不要讓代理重新畫一遍。

選擇整數倍放大
放大 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×16 | 4 | 170 |
| 最近鄰 4× | 64×64 | 4 | 261 |
| 最近鄰 8× | 128×128 | 4 | 376 |
用平滑對照揭示差異
對照板把原圖、最近鄰匯出和故意製作的雙線性插值版本顯示成相同的視覺尺寸。前兩者保留相同的方形轉折;平滑版本混合邊緣併產生中間顏色。它被標為對照,而不是合格匯出。
Ciyo 的對照板是 960×400 點陣圖,包含三個帶標籤的區域,原生檔案仍單獨保留。如果畫布或瀏覽器平滑了預覽,應先用合適的檢視器檢查下載檔案,再判斷匯出是否變了。

FrameSprite 團隊的 10月4日帖子推廣自己的縮放工具,並區分重複畫素、增加細節和引擎過濾。我們的 Ciyo 檔案比較獨立借鑑了這一區分。發帖者沒有表示使用或推薦 Ciyo;核對來源時,其推廣影片無法播放。
另行檢查目標頁面的顯示設定
檔案可以完全正確,網站或遊戲卻再次把它顯示得柔和。MDN 介紹了網頁縮放影像時的 image-rendering 控制。請測試實際顯示尺寸和瀏覽器;正確的 PNG 不會自動設定網頁 CSS 或遊戲引擎的紋理過濾。
若目標是清晰且等大的畫素方塊,優先採用整數倍顯示。本例核對的是匯出畫素,並未驗證你的引擎、動畫時序或所有瀏覽器的縮放行為。
保留原始母檔,交付所需尺寸
在輸出檔名中寫清倍數和尺寸,讓同事能區分原始母檔與交付檔案。把原圖、合格匯出和縮放說明一起儲存。後續修改應從原生原始母檔開始,而不是從截圖或已經被平滑的預覽開始。
可以用下面的樣本重複畫素核對。如果圖示在原生尺寸下已經模糊,先回到繪圖修復網格。最近鄰放大隻能保留已有資訊,不能恢復原圖從未包含的細節。
實用問答
最近鄰縮放會增加細節嗎?
它重複現有畫素,適合保留已確認的網格,不會發明新的繪圖細節。
為什麼畫布預覽可能顯得柔和?
檢視器可能平滑縮放影像。請檢查下載檔案,並另行核對目標頁面的顯示設定。
可以選擇任意輸出尺寸嗎?
整數倍能讓每個原畫素成為同等大小的方塊。任意尺寸需要不均勻方塊或另一種重取樣。
放大一個已確認的圖示
在 Ciyo 開啟原始 PNG,要求另存整數倍匯出,並核對畫素後再替換交付檔案。