2013-08-22 93 views
1

JPEG格式的圖像不支持透明度。 Reference.是否將ARGB_8888加載JPEG圖像時使用了alpha通道?

ARGB_8888是在Android上加載圖像的默認格式。 Reference.

那麼,如果我加載JPEG圖像爲ARGB_8888,8位alpha通道只是沒有在每個像素上使用?

爲了不丟失內存,它應該加載爲RGB_888,對不對?但是這樣的Bitmap.Config不存在。爲什麼?

它將是完美的巨大的JPEG圖像。我不介意慢一點的處理。記憶對我至關重要。僅僅因爲沒有RGB_888選項而丟失25%的內存會更好嗎?

回答

0

我發現這個問題的答案非常依賴於您所處的環境。是否有內存問題,空間或帶寬阻止您使用ARGB_8888?如果沒有,比使用它。

根據該文件,

應隨時使用的可能。

編輯

由於RGB_888不是默認Bitmap.Config選項,但RGB_565是,相較於4作爲ARGB_8888,你最終會回去做基礎上,你的決定,它使用2個字節情況。

是否願意爲所需的處理能力降低圖像質量和使用內存?

+1

我重新說明了我的問題。我只是問,這難道不是傻傻的失去記憶嗎?我不問任何使用案例,如果我應該使用'ARGB_8888'或不:) –

+0

@AdamStelmaszczyk編輯我的答案。 – slybloty

+0

'ARGB_8888'是默認選項。 [參考。](http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inPreferredConfig)我願意放棄處理內存的能力。我不願意放棄圖像質量。 –

0

不一定,在內部,渲染器可以設計爲在執行圖像操作時使用4通道圖像。上傳3通道圖像可能會節省內存,但也需要特殊的操作案例。在GPU加速圖形的情況下,這可能是一個更大的問題(一個GPU驅動程序可能會產生一個假的alpha通道)。

相關問題