2016-11-08 79 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。我们正在处理一个有限的平台。 ;-)