我有显示PNG图像的问题,因为JPG图像显示效果非常好。
以下是获取图片的代码。
Image tImage=Image.createImage("/tasbeeh.jpg");
然后绘制图像,但是对于png
Image tImage=Image.createImage("/tasbeeh.png");
抛出异常:
java.lang.NullPointerException:
at start.SplashScreen.paint(+56)
at javax.microedition.lcdui.Canvas.callPaint(+85)
at javax.microedition.lcdui.Display.repaint(+82)
和
java.io.IOException
at javax.microedition.lcdui.ImmutableImage.getImageFromStream(+15)
at javax.microedition.lcdui.ImmutableImage.<init>(+20)
at javax.microedition.lcdui.Image.createImage(+8)
答案 0 :(得分:1)
我假设你得到的异常是IllegalArgumentException,
如果第一个参数格式不正确或无法解码,则抛出IllegalArgumentException。
因此,您最有可能因图像格式不受支持或截断数据而收到错误。
<强>更新强>
<强> getImageFromStream 抛出: IOException - 如果流有错误
因此,来自该png的数据流未按预期格式化,就像我说的不支持的图像格式或截断的数据一样。
你应该尝试使用像paint.net或photoshop这样的图形程序,并保存为具有不同位格式的PNG。
我希望这会有所帮助。
答案 1 :(得分:0)
根据Image.createImage JavaDoc,对于抛出异常的方法,必须是因为源字符串为null。似乎并非如此。这可能是您的MIDP
或CLDC
版本的问题。
您可以尝试使用Image.createImage
的其他实现,例如this。