我正在开发Midlet应用程序。我发现自己需要经常缩放图像。这已经成为一个问题,因为有些手机很慢,缩放时间太长。
目前我正在使用Image.createRGBImage(int,int,int,boolean)来缩放图像。
我想知道你们中是否有人知道一种非常有效和快速的图像缩放方式。
注意:这是一个Midlet应用程序,因此只有JavaME可用,这意味着我无权访问完整java版本中可用的其他库。
注2:我的大部分缩放都是从小图像到大图像完成的,尽管我也缩小了图像。
答案 0 :(得分:34)
请记住,在讨论缩放算法时总是在速度和图像质量之间进行交易,并且针对您的案例的理想解决方案可能需要进行一些研究和测试。
Nearest neighbor 是图片缩放的最简单,最快实现。
在Coding Horror上有一个关于图像比例/调整大小的精彩介绍,它介绍了几种技术并比较了它们的质量。
我想你正在使用一个非常小的显示设备,因此图像质量最终并不重要。有些人正在为 J2ME 调用this 最快的图像缩放实现。
但是如果你愿意阅读其他一些东西,this paper提出了一种低成本(意思是“非常快”)的缩放算法,它可以显着改善最近邻插值。有可用的源代码,它们也呈现了该研究的演变here。
最后但并非最不重要的是,来自OpenCV的cvResize()
(用于图像处理的开源/跨平台库)。 柳树车库的人们非常善于制作快速的图像/视频处理程序,而且这个功能提供了几种缩放技术,因此可能值得检查它的实现。