JPEG格式的图片不支持透明度。 Reference.
ARGB_8888
是在Android上加载图片的默认格式。 Reference.
那么,如果我将JPEG图像加载为ARGB_8888
,那么每个像素上都不会使用8位alpha通道吗?
为了不丢失内存,应将其加载为RGB_888
,对吧?但是这样的Bitmap.Config
不存在。为什么呢?
它非常适合巨大的JPEG图像。我不介意稍微慢一点的处理。记忆对我来说至关重要。仅仅因为没有RGB_888
选项而失去25%的内存会更好吗?
答案 0 :(得分:0)
我发现这个问题的答案非常依赖于您所处的环境。是否存在阻碍您使用ARGB_8888
的内存问题,空间或带宽?如果没有,请使用它。
根据文件,
应尽可能使用它。
修改强>
由于RGB_888不是默认的Bitmap.Config
选项,但是RGB_565
是2,而使用2个字节而4是ARGB_8888
,你最终会回到做出决定的基础上在这种情况下。
您是否愿意降低图像质量并使用内存以获得所需的处理能力?
答案 1 :(得分:0)
不一定,渲染器内部可以设计为在执行图像操作时使用4通道图像。上传3通道图像可以节省内存,但也需要特殊的操作案例。在GPU加速图形的情况下,这可能是一个更大的问题(GPU驱动程序可能会生成虚假的alpha通道)。