JPEG 格式的图像不支持透明度。参考。
ARGB_8888
是在 Android 上加载图像的默认格式。参考。
那么,如果我将 JPEG 图像加载为ARGB_8888
,则不是每个像素都使用 8 位 alpha 通道?
为了不丢失记忆,它应该加载为RGB_888
,对吗?但这样Bitmap.Config
的不存在。为什么?
它将非常适合巨大的 JPEG 图像。我不介意处理速度慢一点。记忆对我来说很重要。仅仅因为没有RGB_888
选择就失去 25% 的内存会更好吗?
我发现这个问题的答案在很大程度上取决于您所处的环境。是否存在内存问题、空间或带宽会阻止您使用ARGB_8888
?如果没有,那就使用它。
根据文件,
应尽可能使用它。
编辑
由于 RGB_888 不是默认Bitmap.Config
选项,而是RGB_565
使用 2 个字节而不是 4 个 as ARGB_8888
,因此您最终将根据情况重新做出决定。
您是否愿意为了所需的处理能力而降低图像质量和使用的内存?
不一定,渲染器内部可以设计为在执行图像操作时使用 4 通道图像。上传 3 通道图像可能会节省内存,但也需要特殊的操作案例。在 GPU 加速图形的情况下,这可能是一个更大的问题(GPU 驱动程序可能会生成一个假的 alpha 通道)。