2010-04-18 51 views
1

我試圖在J2ME應用程序中顯示一個大圖像文件。但我發現,當圖像文件太大時,我甚至無法創建Image實例並得到異常。如何在J2ME中從大圖像文件製作拇指?

我想我可以以小塊讀取圖像文件,並創建一個縮略圖以顯示給用戶?
有沒有辦法做到這一點?或者有沒有其他方法在應用程序中顯示圖像文件?
謝謝。

回答

1

有一些東西去嘗試,這取決於你希望你的應用程序運行在你正在嘗試做的,什麼手機什麼。

如果圖像被打包MIDlet的JAR文件中,您可以在MIDP運行做什麼,因爲需要的數據纔可以被加載作爲圖像解壓縮較少的控制。在這種情況下,我會建議簡單地打包一個較小的圖像。減少用於編碼每個像素的像素數或字節數。

如果您可以從基於GCF的InputStream(文件,網絡...)讀取圖像字節,則需要了解圖像格式(BMP非常簡單,JPEG較少,所以...),以便可以縮放它下降到一個可變的Image對象,一次只需要更少的內存。

在這種情況下,您還需要決定您的縮放算法應該是什麼。如果手機上的LCDUI實現寫得不好,將文件中的32位像素轉換爲內存中的8位像素可能實際上並不像預期的那樣工作。

根據圖像的內容,像素線的像素列和一半的簡單地刪除一半可以是正是你需要什麼,或者太幼稚的做法。您可能需要查看現有的圖像縮放算法並將其寫入您的應用程序。

請記住,基本的LCDUI可能不是在屏幕上顯示圖像的唯一方法。 JSR-184,JSR-239,JSR-226和eSWT都可以讓你以一種完全獨立於你的手機LCDUI實現的方式做到這一點。

最後,讓我們面對它,如果您的手機MIDP運行時不允許您在全色深度同時創建至少2個屏幕大小的屏幕大小,那麼可能是時候決定不支持那個特定的手機。