2010-04-18 67 views
1

我试图在J2ME应用程序中显示一个大图像文件。但我发现,当图像文件太大时,我甚至无法创建Image实例并得到异常。如何在J2ME中从大图像文件制作拇指?

我想我可以以小块读取图像文件,并创建一个缩略图以显示给用户?
有没有办法做到这一点?或者有没有其他方法在应用程序中显示图像文件?
谢谢。

回答

1

有一些东西去尝试,这取决于你希望你的应用程序运行在你正在尝试做的,什么手机什么。

如果图像被打包MIDlet的JAR文件中,您可以在MIDP运行做什么,因为需要的数据才可以被加载作为图像解压缩较少的控制。在这种情况下,我会建议简单地打包一个较小的图像。减少用于编码每个像素的像素数或字节数。

如果您可以从基于GCF的InputStream(文件,网络...)读取图像字节,则需要了解图像格式(BMP非常简单,JPEG较少,所以...),以便可以缩放它下降到一个可变的Image对象,一次只需要更少的内存。

在这种情况下,您还需要决定您的缩放算法应该是什么。如果手机上的LCDUI实现写得不好,将文件中的32位像素转换为内存中的8位像素可能实际上并不像预期的那样工作。

根据图像的内容,像素线的像素列和一半的简单地删除一半可以是正是你需要什么,或者太幼稚的做法。您可能需要查看现有的图像缩放算法并将其写入您的应用程序。

请记住,基本的LCDUI可能不是在屏幕上显示图像的唯一方法。 JSR-184,JSR-239,JSR-226和eSWT都可以让你以一种完全独立于你的手机LCDUI实现的方式做到这一点。

最后,让我们面对它,如果您的手机MIDP运行时不允许您在全色深度同时创建至少2个屏幕大小的屏幕大小,那么可能是时候决定不支持那个特定的手机。