使用(整数)缩放尽可能快地绘制位图

时间:2014-03-07 11:32:44

标签: android canvas bitmap

我有一个640x480 RGB_565格式的位图,我需要尽可能快地在更高分辨率的显示器上绘制。只要填充了大部分屏幕,位图就会填满整个屏幕并不重要。

所以,我有一个想法是绘制一个双倍大小的位图1280x960,以便原始中的每个像素整齐地映射到屏幕上的4个像素。从理论上讲,这应该比缩放到一些尴尬的部分要快得多。但我不确定如何利用这一点。

任何可能的canvas.drawBitmap函数是否会注意到简单的x2计算并更快地完成任务?我是否应该先制作一个双倍大小的位图然后绘制更大的位图而不进行缩放?什么是最快的方式?

1 个答案:

答案 0 :(得分:1)

Mick,据我所知 - 这是我帮助你的答案。

我也遇到过类似的问题。在阅读了一些关于Bitmap操作的帖子之后 - 我明白在Bitmap上进行任何像素逐行操作都非常慢。

对于您的问题,可以使用内置函数(通常比逐像素操作更快地工作)来缩放位图。这是使用内置函数的方法:

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

在你的情况下,

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

由此产生的图像通常不是很好。如果你想让它更清晰,为了匹配更高分辨率的显示器 - 我建议做一个双三次插值。

我希望这会有所帮助。