簡體   English   中英

從二進制獲取圖像尺寸和圖像大小

[英]Get Image Dimension and Image Size from Binary

我正在一個需要一些圖像處理的項目上。

Web客戶端將提交jpg,png,gif tif格式的圖像。 服務器端需要找出圖像的尺寸和大小。

我可以看到一些Java類通過處理圖像文件來實現此目的。 有什么方法/庫可以用來避免將二進制文件保存到文件中並仍然獲取尺寸?

非常感謝

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

您可以基於InputStream創建一個圖像,然后知道它的尺寸(@ Marc,@ GGrec,我假設“ size”是“ dimension”的意思),如下所示:

    BufferedImage image = ImageIO.read(in);
    int width = image.getWidth();
    int height = image.getHeight();

如果您不對圖像進行任何進一步的操作,則可以嘗試使用com.drewnoakes.metadata-extractor庫。

此外,可以知道ImageIO.read()存在一些性能問題。

如果您需要知道圖像的大小(以字節為單位),則可以簡單地進行如下操作:

byte[] imgBytes = // get you image as byte array
int imgSize = imgBytes.length;

如果您還想知道圖像的寬度和高度,則可以這樣做,例如:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM