我正在开发一个需要一些图像处理的项目。
Web客户端将提交格式为jpg,png,gif tif的图像。服务器端需要找出图像的尺寸和大小。
我可以看到一些Java类通过处理图像文件来实现这一点。是否有任何方法/库可以避免将二进制文件保存到文件中并仍然获得维度?
非常感谢
答案 0 :(得分:3)
File imageFile = new File("Pic.jpg");
double bytes = imageFile.length();
System.out.println("File Size: " + String.format("%.2f", bytes/1024) + "kb");
try{
BufferedImage image = ImageIO.read(imageFile);
System.out.println("Width: " + image.getWidth());
System.out.println("Height: " + image.getHeight());
} catch (Exception ex){
ex.printStackTrace();
}
答案 1 :(得分:1)
你可以根据InputStream
创建一个图像,然后你知道它的尺寸(@Marc,@ GGrec我认为“尺寸”是指“尺寸”的意思),如下所示:
BufferedImage image = ImageIO.read(in);
int width = image.getWidth();
int height = image.getHeight();
答案 2 :(得分:1)
如果您不对图像进行任何进一步操作,可以试试com.drewnoakes.metadata-extractor
库。
此外,ImageIO.read()
可以知道有一些性能问题。
答案 3 :(得分:0)
如果您需要知道图像的大小(以字节为单位),您可以简单地创建:
byte[] imgBytes = // get you image as byte array
int imgSize = imgBytes.length;
如果您还想知道图像的宽度和高度,可以执行此操作,例如:
BufferedImage img = ImageIO.read(new ByteArrayInputStream(imgBytes));
而不是使用getWidth()
和getHeight()
方法。