Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从二进制文件中获取图像尺寸和图像大小_Java_Image - Fatal编程技术网

Java 从二进制文件中获取图像尺寸和图像大小

Java 从二进制文件中获取图像尺寸和图像大小,java,image,Java,Image,我正在做一个需要一些图像处理的项目 web客户端将提交jpg、png、gif tif格式的图像。服务器端需要找出映像的尺寸和大小 我可以看到一些Java类通过处理图像文件来实现这一点。是否有任何方法/库可以用来避免将二进制文件保存到文件中而仍然获得维度 非常感谢您可以基于输入流创建一个图像,然后您知道它的尺寸(@Marc,@GGrec,我假设“尺寸”是指尺寸),如下所示: buffereImage image=ImageIO.read(in); int width=image.getWidth(

我正在做一个需要一些图像处理的项目

web客户端将提交jpg、png、gif tif格式的图像。服务器端需要找出映像的尺寸和大小

我可以看到一些Java类通过处理图像文件来实现这一点。是否有任何方法/库可以用来避免将二进制文件保存到文件中而仍然获得维度


非常感谢

您可以基于
输入流
创建一个图像,然后您知道它的尺寸(@Marc,@GGrec,我假设“尺寸”是指尺寸),如下所示:

buffereImage image=ImageIO.read(in);
int width=image.getWidth();
int height=image.getHeight();
如果您需要知道图像的大小(以字节为单位),您可以简单地制作如下内容:

byte[] imgBytes = // get you image as byte array
int imgSize = imgBytes.length;
如果您还想知道图像的宽度和高度,可以这样做,例如:

BufferedImage img = ImageIO.read(new ByteArrayInputStream(imgBytes));

然后使用
getWidth()
getHeight()
方法。

如果不继续对图像执行任何进一步的操作,可以尝试使用
com.drewnoakes.metadata提取器

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();
}

此外,
ImageIO.read()
可能会有一些性能问题。

当你说你需要尺寸时,是宽度和高度还是以kb为单位的尺寸?@GGrec好吧,让我们现在等待答案;)可能重复的不阅读图像,请参阅谢谢您的回答。我没有要处理的文件。图像以二进制形式出现。@Kevin您必须读取所有字节。这可能有助于: