ALPHA_8ARGB_4444ARGB_8888RGB_565等图片格式的使用

Posted 肥宝Fable

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ALPHA_8ARGB_4444ARGB_8888RGB_565等图片格式的使用相关的知识,希望对你有一定的参考价值。

本文来自肥宝传说之路,引用必须注明出处!

其实如果是小制作,并没有什么卵用。各种格式中,每种都有自己的优点和缺点,我们并无技术创建一种格式,只是在选择最优格式而已。


对于不同的图片资源,有不同的作用,自然可以选择不同的格式。各种脚本是将写着选择固化起来,方便使用,同时提高效率。


ARGB的含义:

A:alpha 通道,程序员当做透明度来了解就行了,想深入了解一下点这里

R:red 红色

G:green 绿色

B:blue 蓝色

ps:这是光的三原色,颜料的三原色是红黄蓝

ALPHA_8:每个像素只有四位,只有透明度,没有颜色,老实说,我不知道这是干嘛用的,黑白图么

ARGB_4444:每个像素占4位,A4、R4、G4、B4,加起来16位,比起ARGB_8888,占用空间更小,但是精度小了

ARGB_8888:A8、R8、G8、B8,加起来32位,同样像素的图片,比上面的大一倍了。

RGB_565:R5、G6、B5,加起来16位,这个不能表示空白的地方


应该还有其他格式的。

在实际应用中,要根据具体的具体的使用要求来进行使用。例如一张地图,肯定不会出现空白透明的地方,所以可以选用不带alpha通道的格式。

而人物,肯定会有透明的地方。

还有一个游戏,或者应用中,肯定是在最开始的功能,最好使用精度最高的图片。

一般情况下,例如做demo,做大作业,做练习,是不需要考虑这些问题的。但是实际应用中,这个问题必须解决。尤其在天朝这种低网速,而且手机容量不够的情况下。

说个实际的,一个MMO手机游戏,图片大小可能占超过98%的容量。

什么都不管,全用ARGB_8888,最终400多M,一个普通游戏,可能玩家见到这么大,就没兴趣下载了。

然后我们把地图,改成RGB_565这一类,没有透明度的图片,缩小了很多。

还有把一些后期功能,不重要的功能,例如一些小怪,压缩,从像素上压缩。

还有图片重用,在这个副本是大boss,下一个副本是小怪。

最后还是有差不多200M。

其实,这还是很大的。有些应用平台,还直接要求,我们的游戏包不能超过50M。

实在没办法了,再压缩就变得自己都觉得对不起观众了。

于是我们把60级以后的图片删除掉,玩家玩到某个节点的时候,就提示要求玩家点击下载新的包。或者在游戏过程中,也偷偷下载新的图片。

为了这个做了好多奇奇怪怪的处理。图片这一块很蛋疼。



以上是关于ALPHA_8ARGB_4444ARGB_8888RGB_565等图片格式的使用的主要内容,如果未能解决你的问题,请参考以下文章

Android ARGB_8888 转 RGB

如何从 ARGB_8888 位图绘制位图

我无法让 vImage(加速框架)将 420Yp8_Cb8_Cr8(平面)转换为 ARGB8888

有关Option.inSamplSize 和 Compress 图片压缩

Glide图片格式设置RGB565不生效?

Glide日常使用以及重难点解读