插入、替换、删除贴图(IMG操作) - Lucky-Koishi/KoishiExAPI GitHub Wiki

添加贴图

  该功能允许将贴图文件经过适合当前版本IMG的处理,并形成图片帧(包括图像数据和一个图片型索引项)插入到当前的IMG文件里;也允许直接插入指向型索引项到IMG文件里。目前允许插入的贴图包括PNG文件、PID文件(索引贴图)和DDS文件(DDS贴图)。
  根据版本不同,允许插入的类型也不同,如下表所示:

IMG版本 允许插入的贴图类型
V2 指向型索引项、PNG贴图
V4 指向型索引项、索引贴图、PNG贴图(有可能会失败)
V5 指向型索引项,DDS贴图、PNG贴图(会失真)
V6 指向型索引项、索引贴图


  操作方式如下:

  • 右键点击帧列表的空白处或者某一项 > 添加贴图,出现添加贴图对话框。
  • 选择贴图类型,并根据贴图类型的处理方式进行设置(具体设置方式与操作原理见后文)。
  • 确定插入位置,位于当前位置之前、当前位置之后以及列表最后。
  • 点击确定。

删除贴图

  顾名思义,删除指定位置的贴图即可。
  但是与贴图相关的其他数据(例如DDS贴图资源和调色板资源等)不会产生任何变化;即使被删除的贴图在插入到IMG文件时引起调色板的扩充或DDS贴图的增加,这些贴图在被删除时,调色板和DDS贴图也不会还原为插入该贴图之前的状态。
  操作方式如下:

  • 右键点击帧列表待删除的某一项 > 删除贴图。

替换贴图

  该功能本质上等于删除选定贴图并在删除的地方添加其他贴图;具体信息可参考“插入贴图”章节;唯一不同的是,替换贴图失败时,并不会删除选定的贴图。该功能也可以用于将图片型索引项转化为指向型索引项。
  操作方式如下:

  • 右键点击帧列表中待替换的某一项 > 替换贴图。
  • 选择贴图类型,并根据贴图类型的处理方式进行设置(具体设置方式与操作原理见后文)。
  • 点击确定。

插入(或替换,下同)贴图的设置方式与操作原理

指向型索引项

  • 原理:直接将索引项插入到索引表中,属于比较简单的操作。
  • 设置:需设置指向的帧号。帧号必须满足:
  1. 不能指向插入该索引项后不存在的帧;
  2. 不能指向插入该索引项后,该帧号变为指向型索引项的帧(例如,不允许将指向帧号设为自己)。

图片型索引项-基于PNG

  • 原理:对V2来说,直接插入并进行压缩即可,并更新图片型索引项数据;对V4来说,首先计算PNG内颜色数目并与当前IMG的颜色表数目相加,其和超过256(包括透明)时,插入失败;否则扩充颜色表并计算新插入PNG每个像素的索引————这个过程是很漫长的。
  • 设置:待插入PNG的文件(包括文件路径),基准点坐标值,帧域尺寸。

图片型索引项-基于索引格式

  • 原理:对V4和V6来说,导入索引模式并与当前调色板结合为索引贴图。若索引模式中的最大索引值超过当前的颜色表,则默认赋予实底黑色;需要注意的是,如果调色板的颜色过于随意,会出现很奇怪的现象;可以先导入索引格式然后再对调色板进行编辑以适应当前索引数据。
  • 设置:待插入PID文件(包括文件路径),基准坐标值,帧域尺寸。

DDS图片型索引项-基于PNG

  • 原理:对V5来说,首先将目标PNG转化为DDS(DXT5)格式,然后将其作为一个DDS贴图插入到文件并建立一个DDS索引项与其对应,之后该DDS图片型索引项的DDSID取值就为新插入的DDS贴图对应的索引项的ID,而范围则直接设置从该DDS贴图的左上到右下,因此有关DDS范围引用均可以不进行设置。
  • 设置:待插入PNG文件(包括文件和路径),基准坐标值,帧域尺寸。

DDS图片型索引项-基于DDS索引项

  • 原理:从所有DDS贴图中选择一个DDS贴图作为引用源,然后设置引用范围将其作为该图片型索引项对应的贴图。
  • 设置:基准坐标值,帧域尺寸,DDS引用ID,DDS引用范围左上点坐标,DDS引用范围右下点坐标。
⚠️ **GitHub.com Fallback** ⚠️