关于DNF的多媒体包NPK文件的那些事儿(6) - IMGV4
IMGV4是IMG結構的第四個版本(筆者至今不知道為什么沒有IMGV3)。IMGV4采用RGBA索引形式存儲數據,廣泛用于時裝圖像的存儲,目前國服絕大部分的時裝文件均使用IMGV4存儲,韓服大部分時裝文件則逐漸被IMGV6代替。
IMGV4在文件的前端帶有一個調色板信息,存儲了IMG內所有圖像所使用的顏色的個數以及顏色的RGBA數值,而圖像數據則存儲索引(即由4字節變為1字節),因此IMGV4相比具有相同效果的IMGV2來說,圖像信息存儲空間減少了75%,但多了調色板所占用的空間,在時裝等這類需要顏色信息較少的IMG文件中,存儲空間和讀取速度都會變小;對于顏色較為復雜尤其類似于背景這樣的點陣圖,由于調色板數據較大,因此不適用于IMGV4格式。此外,IMGV4的特點是對顏色進行操作極為容易,對形狀操作也較為容易,但是插入具有不同顏色的貼圖時需要額外擴充調色板,因此較麻煩。
IMGV4的結構如下表所示:
| 文件頭 | 20字節字符串(注意空格)“Neople Img File”外加“\0” | |||||||||||||||||||||||||
| 索引表大小 | 4字節,索引表所占空間(注意不包含顏色板的空間)。 | |||||||||||||||||||||||||
| 保留 | 4字節,為0。 | |||||||||||||||||||||||||
| 版本號 | 4字節,IMGV4文件結構中的版本號為4。 | |||||||||||||||||||||||||
| 索引表數目 | 4字節,索引表的表項(包括指向型和圖片型) | |||||||||||||||||||||||||
| 調色板數據 | 首4字節為調色板所包含的顏色數目,之后的4×顏色數目個字節則為具體數據,詳見下文“調色板”。 | |||||||||||||||||||||||||
| 索引表 | 索引表項1 | 由若干個索引項構成。索引項包括2種,指向型和圖片型。圖片型存儲對應圖片的各種信息,指向型只存儲一個數據,即所指向的圖片的幀號。 ?
? ? | ||||||||||||||||||||||||
| 索引表項2 | ||||||||||||||||||||||||||
| 索引表項3 | ||||||||||||||||||||||||||
| 索引表項4 | ||||||||||||||||||||||||||
| …… | ||||||||||||||||||||||||||
| 貼圖數據 | 圖像數據塊1 | 由首尾相接的圖像數據塊構成。 由于大部分圖像數據由ZLIB進行壓縮,因此經常以“0x78 0x9C”數據開頭(但不可以其為標準作為圖像數據塊的起始點),解壓后是索引數據,根據索引在調色板中查找對應的顏色。 指向型索引項不對應任何圖像數據(即對應的圖像數據大小為0)。 | ||||||||||||||||||||||||
| 圖像數據塊2 | ||||||||||||||||||||||||||
| 圖像數據塊3 | ||||||||||||||||||||||||||
| …… | ||||||||||||||||||||||||||
IMGV4的調色板數據使用的ABGR8888方式存儲,即在數據流中的順序為R、G、B、A,這點與IMGV2里的ARGB8888顏色存儲方式是有區別的,相當于其中的紅藍通道互換,因此處理V4中的顏色數據時不能沿用IMGV2的處理方式。此外,由于圖像數據里一個像素只使用一個字節存儲,因此調色板中的顏色數目不能超過256,如果去掉需要表示透明的顏色項(在大部分調色板中位于第一個顏色項即0x00000000)的話,那顏色數目就不能超過255個。
當對應的索引表中的壓縮方式為ZLIB壓縮時,圖像數據使用ZLIB壓縮,同V2一樣,不在贅述。使用ZLIB解壓后得到的數據則是索引數據,像素的顏色可以通過在調色板中進行查找,由于大部分的IMG文件調色板中第一個顏色就是表示透明的像素,因此解壓后的圖像數據中的00經常表示透明像素了。
IMGV4的顏色調整是極為容易的,只要對IMGV4的調色板數據進行編輯和修改(但不能增加或刪除)即可,無需對后續的圖像數據進行任何分析;若不改變顏色,對形狀修改教IMGV2比也容易,因為無需考慮顏色問題,僅修改索引數據就可以了。
下圖是一個比較簡單的IMGV4顏色編輯工具:
IMGV4最大的問題是插入圖片數據,如果插入的圖片數據存在IMG文件中調色板所不存在的顏色時,就要擴充顏色板;而此時當顏色板顏色項數已經超過了256,則該IMG文件就無法滿足需求了,因此在對IMG進行自由的插入和刪除時,使用IMGV2更為穩妥。而對于帶有漸變或者噪音的圖像,使用IMGV4會極大地增加調色板的數據以致性能下降甚至丟失數據,因此也不適合使用IMGV4進行存儲。
總結
以上是生活随笔為你收集整理的关于DNF的多媒体包NPK文件的那些事儿(6) - IMGV4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux禁止用户登录
- 下一篇: openwrt无盘服务器,搭建基于 Op