2016-11-08 19 views
1

我試圖創建一個淡入使用DvbBufferedImage通過改變圖像的阿爾法值我的BD-J應用動畫,試圖建立一個DvbBufferedImage但其寬度和高度都爲0

doubleBuffer = new DVBBufferedImage(1920, 2180, DVBBufferedImage.TYPE_ADVANCED); 

但創建緩衝區後,其寬度和高度爲0,當我試圖獲取圖形時:

DVBGraphics bufferGraphics = doubleBuffer.createGraphics(); 

它返回空值。

之後,我想繪製圖像到緩衝區,我得到NullPointerException。 你有什麼建議嗎? 我認爲這是關係到我的圖書館,因爲當我使用此代碼替換DvbBufferedImageBufferedImage

protected BufferedImage bufImage = new BufferedImage(1920, 2180, BufferedImage.TYPE_INT_ARGB); 

它說:

構造BufferedImage的(INT,INT,INT)是未定義

我提到我使用自定義的eclipse來開發Bd-j應用程序,而我的java版本是jre1.8.0_77。用於這種應用

類如下:

basis.jar 
btclasses.zip 
j2me_xml_cdc.jar 
javatv.jar 
jsse-cdc.jar 
pbp_1_0.jar 
SonicBDJ.jar 

您的幫助將這個問題提前感激,謝謝!

+0

'1920x2180'?這是什麼樣的解決方案? – Kayaman

+0

我想使用這張1920x2180的圖像作爲我的地圖,將它加載到緩衝區(bufferedimage的dvbbufferedimage),然後將其一部分繪製到這個緩衝區並生成我的最終圖像。然後我使用這個圖像來運行動畫(通過改變它的alpha值) – Arvin

回答

0

這可能與內存問題有關。

根據規範,藍光播放器只需要4MB的內存。這包括當前加載的實際JAR文件的空間。因此,如果您使用高質量的1920x2180像素圖像,那麼您的JAR可能已經佔用了1-2 MB。然後將該映像加載到內存中可能會導致OutOfMemoryException,這意味着該映像將不會被加載,這就是爲什麼你會得到NullPointerException

藍光光盤Java是JavaME。我們正在處理一個有限的平臺。 ;-)

相關問題