本发明专利技术公开了一种图片变色方法,包括:对基于调色板格式的原始图片进行程序解码,获得第一调色板和图片索引区;获取第二调色板;根据所述图片索引区中的像素索引,从所述第二调色板内逐一找出与所述像素索引对应的颜色,并将每个像素对应的颜色逐一绘制到窗口内,获得变色后的图片。本发明专利技术还公开了一种图片变色装置。采用本发明专利技术实施例,能在图片变色时降低内存和CPU的消耗,能在效率要求极高的游戏中实现图片资源展示。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种图片变色方法,包括:对基于调色板格式的原始图片进行程序解码,获得第一调色板和图片索引区;获取第二调色板;根据所述图片索引区中的像素索引,从所述第二调色板内逐一找出与所述像素索引对应的颜色,并将每个像素对应的颜色逐一绘制到窗口内,获得变色后的图片。本专利技术还公开了一种图片变色装置。采用本专利技术实施例,能在图片变色时降低内存和CPU的消耗,能在效率要求极高的游戏中实现图片资源展示。【专利说明】图片变色方法及装置
本专利技术涉及计算机
,尤其涉及一种图片变色方法及装置。
技术介绍
在游戏领域中,常常需要对图片资源进行变色,从而达到灵活复用图片,进行不同展现的目的。针对图片资源的变色,现有技术是对整个图片的所有像素按照一定的变色算法,逐个转换。具体为:基于调色板的图片格式的图片,经过程序解码后,可以分成调色板(图片所使用的颜色的集合)和图片索引区(图片中每个像素颜色在调色板中的索引值集合)两个部分。假设图片的宽为W像素,高为H像素,每个像素的颜色数值占用PIXSIZE个字节;则先为所述图片分配一块大小为W*H*PIXSIZE的内存。然后,根据所述图片的图片索引区中的像素索引,从调色板内逐一找出与所述像素索引对应的颜色,将每个像素的颜色值一一写入所述内存区域。接着,根据变色转换函数,对所述内存区域的每个颜色值进行变色转换。当需要绘制图片时,直接将所述内存区域中的颜色值逐像素绘制到窗口,即可在窗口上看到变色的图片。可见,现有的变色方法需在内存中又存储一份新图片,在需要使用时再绘制出来。当变色转换函数比较复杂,或者原来图片资源较大时,这种方法的计算和内存消耗就变得相当大,以至于不适合在效率要求极高的游戏中做展示。
技术实现思路
本专利技术实施例提出一种图片变色方法及装置,能在图片变色时降低内存和CPU的消耗,能在效率要求极高的游戏中实现图片资源展示。本专利技术实施例提供了一种图片变色方法,包括:对基于调色板格式的原始图片进行程序解码,获得第一调色板和图片索引区;获取第二调色板;根据所述图片索引区中的像素索引,从所述第二调色板内逐一找出与所述像素索引对应的颜色,并将每个像素对应的颜色逐一绘制到窗口内,获得变色后的图片。在一个实施例中,所述获取第二调色板具体为:将所述第一调色板中的每个颜色值复制到内存区域中;获取变色参数;根据所述变色参数和变色转换函数,对所述内存区域中的每个颜色值进行变色转换,获得第二调色板。进一步的,所述获取变色参数具体为:通过导入预先配置的外部文件来获取所述变色参数;或者,通过直接读取预先配置的内部文件来获取所述变色参数;或者,按照时间对一个参数进行即时调整而获得所述变色参数。再进一步的,所述变色转换函数是调整色调、饱和度和强度的函数;或者,所述变色转换函数是调整对比度的函数;或者,所述变色转换函数是对RGB三色进行空间转换的函数。在另一个实施例中,所述获取第二调色板具体为:从预先存储的调色板文件中,选出第二调色板;将所述第二调色板复制到内存区域中。本专利技术实施例还提供了一种图片变色装置,包括:解码模块,用于对基于调色板格式的原始图片进行程序解码,获得第一调色板和图片索引区;变色模块,用于获取第二调色板;和,绘制模块,用于根据所述图片索引区中的像素索引,从所述第二调色板内逐一找出与所述像素索引对应的颜色,并将每个像素对应的颜色逐一绘制到窗口内,获得变色后的图片。在一个实施例中,所述变色模块具体包括:数据复制单元,用于将所述第一调色板中的每个颜色值复制到内存区域中;参数获取单元,用于获取变色参数;和,转换单元,根据所述变色参数和变色转换函数,对所述内存区域中的每个颜色值进行变色转换,获得第二调色板。进一步的,所述参数获取单元具体用于通过导入预先配置的外部文件来获取所述变色参数;或者,通过直接读取预先配置的内部文件来获取所述变色参数;或者,按照时间对一个参数进行即时调整而获得所述变色参数。再进一步的,所述变色转换函数是调整色调、饱和度和强度的函数;或者,所述变色转换函数是调整对比度的函数;或者,所述变色转换函数是对RGB三色进行空间转换的函数。在另一个实施例中,所述变色模块具体包括:调色板选取单元,用于从预先存储的调色板文件中,选出第二调色板;和,调色板复制单元,用于将所述第二调色板复制到内存区域中。实施本专利技术实施例,具有如下有益效果:本专利技术实施例提供的图片变色方法及装置,根据变色参数和变色转换函数对图片的调色板进行变色转换,获得新的调色板,将图片数据所使用的调色板替换为所述新的调色板。在绘制图片时,从所述新的调色板内逐一找出图片中每个像素索引对应的颜色,并绘制到窗口内,即可获得变色后的图片。相对于现有技术中进行图片变色时需要分配内存来存储新的图片资源,并且需要逐一对图片中的每个像素进行变色计算来说,本专利技术实施例进行图片变色时无需分配内存来存储新的图片资源,只需要对调色板进行变色,图片资源即能自行进行颜色变换,降低了内存和CPU的消耗,能在效率要求极高的游戏中实现图片资源展示。此外,变色参数可以存储为外部文件,在需要使用时才导入,能够进一步降低内存和CPU的消耗。【专利附图】【附图说明】图1是本专利技术提供的图片变色方法的一个实施例的流程示意图;图2是本专利技术提供的图片资源的图片索引区的一个实施例的示意图;图3是本专利技术提供的图片变色方法中获取第二调色板的一个实施例的流程示意图;图4是本专利技术提供的图片变色方法中获取第二调色板的另一个实施例的流程示意图;图5是本专利技术提供的图片变色装置的一个实施例的结构示意图;图6是本专利技术提供的图片变色装置的变色模块的一个实施例的结构示意图;图7是本专利技术提供的图片变色装置的变色模块的另一个实施例的结构示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,是本专利技术提供的图片变色方法的一个实施例的流程示意图。本专利技术实施例提供一种图片变色方法,包括步骤SI至步骤S3,具体如下:步骤S1:对基于调色板格式的原始图片进行程序解码,获得第一调色板和图片索引区。基于调色板的图片格式的图片,经过程序解码后,可以分成第一调色板和图片索引区两个部分。其中,第一调色板是图片所使用的颜色的集合,例如,第一调色板包含256种颜色。图片索引区是图片中每个像素颜色在调色板中的索引值集合。如图2所示,是本专利技术提供的图片资源的图片索引区的一个实施例的示意图,图片索引区以16进制的字节表示,每个字节指代使用调色板中对应序号的颜色。步骤S2:获取第二调色板。如图3所示,在一个实施例中,上述步骤S2中获取第二调色板的方法具体包括步骤S21至步骤S23,如下:步骤S21:将所述第一调色板中的每个颜色值复制到内存区域中。步骤S22:获取变色参数。其中,变色参数可以存储为外部文件。则,获取变色参数的方法具体为:通过导入预先配置的外部文件来获取所述变色参数。本实施例将变色参数存储为外部文件,在需要使用时才导入,能够降低内存和CPU的消耗。或者,变色参本文档来自技高网...
【技术保护点】
一种图片变色方法,其特征在于,包括:对基于调色板格式的原始图片进行程序解码,获得第一调色板和图片索引区;获取第二调色板;根据所述图片索引区中的像素索引,从所述第二调色板内逐一找出与所述像素索引对应的颜色,并将每个像素对应的颜色逐一绘制到窗口内,获得变色后的图片。
【技术特征摘要】
【专利技术属性】
技术研发人员:吴国瑞,吴海育,万晋森,
申请(专利权)人:广州博冠信息科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。