BitmapFactory.Options中有一個屬性值是inDither辙浑,這個值表示是否采用抖動解碼激涤,那什么叫抖動解碼呢?
Bitmap的解碼是根據它所記錄的節(jié)點判呕,依照一定算法倦踢,來補充兩個節(jié)點之間的數據送滞,可以理解為補充其中像素點的顏色,那么在解碼的時候肯定會和當前所采用的顏色模式有關辱挥,很直觀的說犁嗅,采用32位的肯定比16位的顏色要多,自然展現的圖像會看起來更好晤碘。
如果一張顏色很豐富的圖褂微,用一個位數比較低的顏色模式來解碼的話,那么一個直觀的感覺就是顏色不夠用园爷,那么這張圖解出來之后宠蚂,在一些顏色漸變的區(qū)域上就會有一些很明顯的斷裂色帶,這個很好解釋童社,因為一些豐富的顏色在位數較低的顏色模式下并沒有肥矢,那么只能用相近的填充,可能一大片都沒有叠洗,那么一大片都用這一個顏色填充甘改,就形成了斷裂色帶。
如果采用抖動解碼灭抑,那么就會在這些色帶上采用隨機噪聲色來填充十艾,目的是讓這張圖顯示效果更好,色帶不那么明顯腾节。
看下面的例子:
很明顯忘嫉,左邊(option.inDither = true)的更平滑一點,右邊的會有一些色帶案腺,如果不想有這些色帶庆冕,那么就需要采用抖動解碼。