2014-03-07 31 views
2

我有一個640x480 RGB_565格式的位圖,我需要儘可能快地在更高分辨率的顯示器上繪製位圖。只要填充大部分內容,位圖填充整個屏幕並不重要。使用(整數)縮放盡可能快地繪製位圖

所以,我有一個想法是繪製一個雙倍大小的位圖1280x960,以便原始中的每個像素整齊地映射到屏幕上的4個像素。理論上講,這應該比縮放到一些令人尷尬的部分快得多。但我不確定如何利用這一點。

是否有任何可能的canvas.drawBitmap函數會注意到簡單的x2計算並使事情更快?我是否應該首先製作一個雙倍大小的位圖,然後在不縮放的情況下繪製較大的位圖?什麼是最快的方式?

+2

看到drawBitmap用矩陣PARAM – pskink

回答

1

米克,從我的理解 - 這是我的答案來幫助你。

我也有類似的問題。在閱讀了一些關於位圖操作的文章之後 - 我瞭解到,在Bitmap上進行任何逐像素操作在android上確實很慢。

對於您的問題,位圖可以使用內置函數進行縮放(它通常比逐個像素操作的運算速度更快)。這是使用內置函數的方法:

bitmapProcessed = Bitmap.createScaledBitmap(originalBitmap, NewWidth, NewHeight, true); 

在你的情況,

NewWidth = 2 * originalBitmap.getWidth(); 
NewHeight = 2 * originalBitmap.getHeight(); 

,從這個結果的圖像,一般是不太好。如果你想使它更清晰,以匹配更高分辨率的顯示 - 我會建議做一個雙三次插值。

我希望這會有所幫助。

+1

不使用Bitmap.createScaledBitmap它會創建一個新的Bitmap實例,見上面我的評論RO如何繪製更大 – pskink

+0

@pskink - 是否有可能雙立方插值處理後的圖像,通過設置矩陣PARAM 。你的方法看起來更整齊。 :) – sudhishkr

+1

請參閱油漆選項 – pskink