我有一个 640x480 RGB_565 格式的位图,我需要尽快在更高分辨率的显示器上绘制它。位图填满整个屏幕并不重要,只要它填满大部分即可。
因此,我的一个想法是绘制一个双倍大小的位图 1280x960,以便原始图像中的每个像素整齐地映射到屏幕上的 4 个像素。从理论上讲,这应该比缩放到一些笨拙的分数要快得多。但我不确定究竟如何利用这一点。
任何可能的 canvas.drawBitmap
函数会注意到简单的 x2 计算并更快地执行操作吗?我是否应该先制作双倍大小的位图,然后在不缩放的情况下绘制更大的位图?最快的方法是什么?
最佳答案
Mick,据我了解 - 这是我的回答,可以帮助您。
我也遇到过类似的问题。在阅读了一些关于位图操作的帖子后——我了解到在位图上进行任何逐像素操作在 Android 上都非常慢。
对于您的问题,可以使用内置函数缩放位图(通常比逐像素操作更快)。这是使用内置函数的方法:
bitmapProcessed = Bitmap.createScaledBitmap(originalBitmap, NewWidth, NewHeight, true);
在你的情况下,
NewWidth = 2 * originalBitmap.getWidth();
NewHeight = 2 * originalBitmap.getHeight();
由此产生的图像通常不是很好。如果你想让它更清晰,以匹配更高分辨率的显示器——我建议做一个双三次插值。
希望对您有所帮助。
关于android - 使用(整数)缩放尽可能快地绘制位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248940/