ImageInputStream imageInputStream=ImageIO.createImageInputStream(tempFile);
BufferedImage image=null;
Iterator<ImageReader> it = ImageIO.getImageReaders(imageInputStream);
// 迭代器遍历尝试用ImageReader对象进行解码
while (it.hasNext()) {
ImageReader imageReader = it.next();
// 设置解码器的输入流
imageReader.setInput(imageInputStream, true, true);
try {
// 解码成功返回BufferedImage对象
// 0即为对第0张图像解码(gif格式会有多张图像),前面获取宽度高度的方法中的参数0也是同样的意思
image=imageReader.read(0, imageReader.getDefaultReadParam());
} catch (Exception e) {
imageReader.dispose();
// 如果解码失败尝试用下一个ImageReader解码
}
}