从网上下载图片的时候可能不知道图片是什么格式的,这样如果用Image.write来写文件的话可能会出问题。刚才尝试用二进制把文件读下来,然后统一成jpg的后缀,这样读取jpeg和gid等格式的文件之后都能正常预览。。。
上代码:
public class Main {
public static String getFormatName(Object object) throws Exception{
ImageInputStream iis = ImageIO.createImageInputStream(object);
Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);
while (iterator.hasNext()) {
ImageReader reader = (ImageReader)iterator.next();
return reader.getFormatName();
}
return null;
}
public static void main(String[] args){
try {
URL url = new URL("http://info-database.youkuaiyun.com/Upload/2012-01-31/ccb-475-60.gif");
HttpURLConnection httpURLConnection = (java.net.HttpURLConnection) url.openConnection();
httpURLConnection.connect();
BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
FileOutputStream fos = new FileOutputStream("c:/csdn.jpg");
byte[] buffer = new byte[1024];
int size = 0;
while((size = bis.read(buffer)) != -1)
fos.write(buffer, 0, size);
fos.close();
bis.close();
File file = new File("c:/csdn.jpg");
System.out.println(getFormatName(file));
} catch (Exception e) {
}
}
}
本文介绍了一种从网络下载图片并将其统一转换为jpg格式的方法。通过使用Java的ImageIO库,可以自动识别并转换各种图片格式,包括jpeg、gif等。文中提供了一个示例代码,展示了如何实现这一过程。

被折叠的 条评论
为什么被折叠?



