7

我正在研究Midlet應用程序。我發現自己需要經常縮放圖像。這已成爲一個問題,因爲一些手機非常慢,縮放時間太長。Java - 我需要一個非常快速的圖像縮放算法

目前我使用Image.createRGBImage(int,int,int,boolean)來縮放圖像。

我想知道您是否有任何人知道一種非常有效且快速的縮放圖像的方法。

注意:這是一個Midlet應用程序,所以只有JavaME可用,這意味着我無法訪問完整java版本中的其他一些庫。

注2:我的縮放大部分都是從小圖像到大圖像完成的,儘管我也會縮小圖像的大小。

+1

你在說什麼尺碼?是%變化任意還是一些簡單的倍數(如2x)? –

+0

優化的一種方法是使用mipmapping:http://www.3drender.com/glossary/mipmapping.htm – appas

+0

比例尺寸是任意的。假設我的圖像是100px x 65像素。我需要將其縮放到任何我想要的尺寸。我們說200px乘500px,或者1200px乘10px。所以它需要垂直或水平放大或縮小,和/或兩者的任何組合。 – Tony

回答

29

請記住,在討論縮放算法時,速度和圖像質量之間始終存在交易,您的情況的理想解決方案可能需要一些研究和測試。

Nearest neighbor簡單和最快的實現圖像縮放。

有一個很好的介紹圖像規模/調整Coding Horror其中審查了幾種技術,並比較它們的質量。

我想你正在使用一個非常小的顯示設備,所以圖像質量在最後並不重要。有人正在調用this最快的圖像縮放實現J2ME

但是,如果你願意讀一些其他的東西,this paper提出了一個低成本(意思是「非常快」)的縮放算法,大大提高了最近鄰插值。有可用的源代碼,並且他們還展示了該研究的演變here

最後但並非最不重要的,來自OpenCV(開源/跨平臺圖像處理庫)的cvResize()楊柳車庫的人很擅長製作圖像/視頻處理的快速程序,而這個功能提供了一些縮放技術,因此可能值得檢查它的實現。

+1

謝謝。我目前正在使用你在鏈接中描述的技術:「有些人稱這是J2ME最快的圖像縮放實現。」 我會回顧其他技術,並做一些測試,看看我是否有更快的縮放比例。豎起大拇指爲你的出色答案。分給你。謝謝Karl。 – Tony