對于傳統游戲,我需要以 BMP(或 PNG)調色板格式加載影像并更改調色板上的某些眾所周知的索引(例如,使用帶有綠色陰影的索引 0-8 替換紅色漸變,以更改一個單位)。單獨進行顏色替換是不夠的,因為同一種顏色可能會被多個單元功能使用。
因此是否可以加載調色板影像并將顏色索引保留在 ImageSharp 中?當我使用 加載調色板單元影像時Image.Load("FileName"),它始終以 Argb32 模式加載,并且調色板丟失。在 Photoshop 中,相同的影像以索引模式正確加載。另外,我不確定我可能會使用哪些屬性來查看/編輯調色板。
我在網上沒有找到關于該主題的太多資訊。我看到IndexedImageFrame<TPixel>檔案中有一種型別,但我不確定該型別是否/如何幫助解決上述問題。
編輯:正如James South正確指出的那樣,ImageSharp 默認以 Rgba32 模式加載 PNG。
uj5u.com熱心網友回復:
當我使用 加載調色板單元影像時
Image.Load("FileName"),它始終以 Argb32 模式加載
實際上,Rgba32如果加載 png(盡管這可能會在未來發生變化)。為了保證像素格式,您應該使用通用變體。
在 Photoshop 中,相同的影像以索引模式正確加載。
這不是 PhotoShop 正在做的。他們正在捕獲調色板并將其顯示給您。任何像素格式的實際畫布格式都相同。
ImageSharp 也是如此。解碼后的影像是一個 2D 緩沖區,TPixel但我們在解碼時捕獲元資料,并使用它來通知編碼器要保存的像素格式對影像進行編碼。
也就是說......目前恐怕不支持在解碼時捕獲當前調色板。如果您想在GitHub 存盤庫中提出問題,我們可能會考慮將其用于 V2。
如果您要捕獲該資訊,則可以在影像編碼期間使用帶有更新調色板的 PaletteQuantizer 進行調整/保存。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368959.html
上一篇:處理嘈雜的影像以獲得干凈的多邊形
下一篇:如何在Scala中正確處理回傳
