Попытка создать DvbBufferedImage, но его ширина и высота 0
Я пытаюсь создать постепенную анимацию, используя DvbBufferedImage для моего приложения BD-J, изменяя альфа-значение изображений,
doubleBuffer = new DVBBufferedImage(1920, 2180, DVBBufferedImage.TYPE_ADVANCED);
но после того, как он создает буфер, его ширина и высота равны 0, а когда я пытаюсь получить графику:
DVBGraphics bufferGraphics = doubleBuffer.createGraphics();
Возвращает ноль.
после этого я хочу нарисовать изображения в буфер и получаю NullPointerException
, Есть ли у вас и предложение? Я думаю, что это связано с моими библиотеками, потому что, когда я заменил DvbBufferedImage
с BufferedImage
используя этот код:
protected BufferedImage bufImage = new BufferedImage(1920, 2180, BufferedImage.TYPE_INT_ARGB );
это говорит:
Конструктор BufferedImage (int, int, int) не определен
Я упоминаю, что я использую настраиваемое затмение для разработки 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 ответ
Это может быть связано с проблемой памяти.
Проигрыватели Blu-ray должны иметь только 4 МБ памяти в соответствии со спецификацией. Это включает пространство для фактического загруженного файла JAR. Так что, если вы используете изображение 1920x2180 пикселей в высоком качестве, то ваш JAR, вероятно, уже занимает 1-2 Мб. Тогда загрузка этого изображения в память может вызвать OutOfMemoryException
Это означает, что изображение не будет загружено, поэтому вы получаете NullPointerException
,
Blu-ray Disc Java - это JavaME. Мы имеем дело с ограниченной платформой.;-)