尝试创建DvbBufferedImage但其宽度和高度为0

时间:2016-11-08 10:45:27

标签: java-me xlet blu-ray

我正在尝试通过更改图像的alpha值为我的BD-J应用程序使用DvbBufferedImage创建一个淡入动画,

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

但在创建缓冲区后,其宽度和高度为0,当我试图获取图形时:

DVBGraphics bufferGraphics = doubleBuffer.createGraphics();

返回null。

之后,我想在缓冲区上绘制图像,然后得到NullPointerException。 你有什么建议吗? 我认为它与我的库有关,因为当我使用此代码替换DvbBufferedImage BufferedImage时:

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

您的帮助将在此问题上受到赞赏,提前致谢!

1 个答案:

答案 0 :(得分:0)

这可能与内存问题有关。

根据规格,蓝光播放器只需要有4 MB的内存。这包括当前加载的实际JAR文件的空间。因此,如果您使用高质量的1920x2180像素的图像,那么您的JAR可能已经占用了1-2 MB。然后将该图像加载到内存中可能会导致File Real Path: /private/var/folders/d0/b3zwsx7530l115k5rrj0zkx80000gn/T/phpdDRwaz ,这意味着图片无法加载,这就是您获得OutOfMemoryException的原因。

Blu-ray Disc Java是JavaME。我们正在处理有限的平台。 ; - )