给出ImageReader类代码
时间: 2024-02-18 20:30:16 浏览: 27
以下是ImageReader类的示例代码:
```java
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
public class ImageReaderExample {
public static void main(String[] args) {
try {
// 创建一个File对象,指向要读取的图片文件
File imageFile = new File("example.jpg");
// 获取图片文件的扩展名,用于确定使用哪个ImageReader
String extension = getFileExtension(imageFile);
// 获取指定扩展名的ImageReader
Iterator<ImageReader> readers = ImageIO.getImageReadersBySuffix(extension);
ImageReader reader = readers.next();
// 创建一个ImageInputStream,用于读取图片文件
ImageInputStream stream = ImageIO.createImageInputStream(imageFile);
// 将ImageInputStream传递给ImageReader
reader.setInput(stream);
// 获取图片的宽度和高度
int width = reader.getWidth(0);
int height = reader.getHeight(0);
System.out.println("Image width: " + width);
System.out.println("Image height: " + height);
// 关闭ImageInputStream和ImageReader
reader.dispose();
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static String getFileExtension(File file) {
String name = file.getName();
int lastIndexOfDot = name.lastIndexOf(".");
if (lastIndexOfDot != -1 && lastIndexOfDot != 0) {
return name.substring(lastIndexOfDot + 1);
} else {
return "";
}
}
}
```