1

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

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

在此问题上您的帮助将不胜感激,在此先感谢!

4

1 回答 1

0

这可能与内存问题有关。

根据规范,蓝光播放器只需要 4 mb 的内存。这包括当前加载的实际 JAR 文件的空间。因此,如果您使用的是 1920x2180 像素的高质量图像,那么您的 JAR 可能已经占用了 1-2 mb。然后将该图像加载到内存中可能会导致OutOfMemoryException,这意味着图像不会被加载,这就是您获得NullPointerException.

蓝光光盘 Java 是 JavaME。我们正在处理一个有限的平台。;-)

于 2018-02-21T06:31:03.197 回答