我正在开发一个Midlet应用程序。我经常需要缩放图像,但这已经成为一个问题,因为有些手机速度比较慢,缩放操作太耗时间。
目前我是使用Image.createRGBImage(int, int, int, boolean) 来缩放图像。
我想知道是否有非常高效快速的方法来缩放图像。
注意: 这是一个Midlet应用程序,只有JavaME可用,也就是说我无法使用全版本Java中的某些库。
注意2: 大多数情况下我是从小图像缩放到大图像,虽然我也会缩小图像。
我正在开发一个Midlet应用程序。我经常需要缩放图像,但这已经成为一个问题,因为有些手机速度比较慢,缩放操作太耗时间。
目前我是使用Image.createRGBImage(int, int, int, boolean) 来缩放图像。
我想知道是否有非常高效快速的方法来缩放图像。
注意: 这是一个Midlet应用程序,只有JavaME可用,也就是说我无法使用全版本Java中的某些库。
注意2: 大多数情况下我是从小图像缩放到大图像,虽然我也会缩小图像。
需要注意的是,在讨论缩放算法时,速度和图像质量之间总存在一个权衡。对于您的情况,最理想的解决方案可能需要一些研究和测试。
最近邻插值是图像缩放的最简单和最快速的实现方式。
Coding Horror上有一个很好的关于图像缩放 / 调整大小的介绍,回顾了几种技术并比较了它们的质量。
我想象您正在使用非常小的显示设备,因此图像质量最终并不重要。有些人称这个是针对J2ME的最快速的图像缩放实现。
但是,如果您愿意阅读其他内容,这篇文章提供了一种低成本(意味着“非常快速”)的缩放算法,它在最近邻插值的基础上显著改进了图像质量。源代码可用,并且他们还在这里介绍了该研究的演化。
最后但并非最不重要的是,来自OpenCV(用于图像处理的开源/跨平台库)的cvResize()
函数。Willow garage的人在快速制作图像/视频处理程序方面非常擅长,而此函数提供了几种缩放技术,因此检查其实现可能是值得的。