我遵循OpenIMAJ教程,当我运行以下代码时:
import java.io.IOException;
import java.net.URL;
import org.openimaj.image.ImageUtilities;
import org.openimaj.image.MBFImage;
import org.openimaj.image.colour.ColourSpace;
import org.openimaj.image.colour.RGBColour;
public class App {
public static void main( String[] args ) throws IOException {
MBFImage image = ImageUtilities.readMBF(new URL("http://dl.dropbox.com/u/8705593/sinaface.jpg"));
System.out.println(image.colourSpace);
}
} 我得到以下例外:
Exception in thread "main" java.io.IOException: org.apache.sanselan.ImageReadException: Can't parse this format.
at org.openimaj.image.ExtendedImageIO.read(ExtendedImageIO.java:189)
at org.openimaj.image.ExtendedImageIO.read(ExtendedImageIO.java:238)
at org.openimaj.image.ImageUtilities.readMBF(ImageUtilities.java:381)
at somefolder.App.main(App.java:37)
Caused by: org.apache.sanselan.ImageReadException: Can't parse this format.
at org.apache.sanselan.Sanselan.getImageParser(Sanselan.java:621)
at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1260)
at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1163)
at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1136)
at org.openimaj.image.ExtendedImageIO.read(ExtendedImageIO.java:187)
... 3 more有人知道我怎么解决这个问题吗?谢谢。
编辑:如果我下载图像并从文件系统读取它,它就能工作。尽管如此,我还是想了解为什么从URL中读取不起作用。
发布于 2015-07-03 08:10:09
不久前,Dropbox在那里更改了urls &现在使用302重定向到https://dl.dropboxusercontent.com/u/8705593/sinaface.jpg。Java的URL类在打开原始URL时不遵循重定向,最终导致此错误。
我们已经用新的工作URL:http://openimaj.github.io/openimaj/tutorial/processing-your-first-image.html修复了开发版本的文档
(注意:如果您需要处理重定向,org.openimaj.io.HttpUtils类具有从URL打开InputStreams的功能,同时处理一些可能的重定向策略,包括302 s和基于元刷新的重定向)。
https://stackoverflow.com/questions/31190592
复制相似问题