处理Libgdx中的渐进式jpeg图像

我正在尝试将一个简单的Facebook个人资料图片请求function实现到正在使用Libgdx引擎开发的游戏中。 我想获得所需的图片,并最终在屏幕上显示。 我希望这可以在我的桌面和Android实现上工作。

当我尝试使用配置文件图片创建Pixmap对象时会出现问题,因为配置文件图片是渐进式jpeg,libgdx无法加载。 示例代码:

inStream = new URL(url).openStream(); byte[] buffer = new byte[1024 * 200]; int readBytes = 0; while (true) { int length = inStream.read(buffer, readBytes, buffer.length - readBytes); if (length == -1) break; readBytes += length; } Pixmap pixmap = new Pixmap(buffer, 0, readBytes); 

由于图像是下载的图像,我没有选择使用软件将图像转换为常规的jpeg或png格式。 我已经尝试使用ImageIO软件包(在其他一些软件包中)来解码图像,但它也无法处理渐进式jpeg。 我无法find适用于这两种平台的解决方案。

有什么建议可以解决这个问题? 至少,如果我可以为Android处理它,也许我可以想到桌面实现的其他东西。

这不是问题的确切解决方案,但我所做的是;

我决定在桌面实现中放置静态图像,并下载Android实现的配置文件图片。

首先,我得到图片并将其解码为Bitmap。 示例代码:

 URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap myBitmap = BitmapFactory.decodeStream(input); 

然后我从Bitmap对象创建一个字节数组,如下所示:

 ByteArrayOutputStream outStream; int size = myBitmap.getWidth() * myBitmap.getHeight() * 2; while (true) { outStream = new ByteArrayOutputStream(size); if (myBitmap.compress(Bitmap.CompressFormat.PNG, 0, outStream)) break; size = size * 3 / 2; } byte[] buffer = outStream.toByteArray(); 

现在可以使用字节数组来创建Pixmap对象并加载图像。

使用gdx-image扩展来处理渐进式jpg

在这里查看你肯定会得到http://www.solutionoferror.com/java/cannot-load-progressive-jpeg-images-in-libgdx-82600.asp