java讀取圖片長寬的問題

      通常在上傳圖片的情景下,須要獲取圖片的尺寸保存進數據庫,便於之後作進一步的處理。java

獲得圖片的字節數組數據不作詳細說明,常規的處理方法以下,在網上一搜一大把。數據庫

// byte[] data 圖片的字節數據
BufferedImage bi = ImageIO.read(new ByteArrayInputStream(data));
int width = bi.getWidth();
int height = bi.getHeight();

以上代碼對於通常的rgb圖片沒問題,但對於cmyk格式的圖片,就會報異常apache

javax.imageio.IIOException: Unsupported Image Type
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
    at javax.imageio.ImageIO.read(Unknown Source)

apache有一個純java的處理圖片的類庫sanselan,maven引用以下數組

<dependency>
    <groupId>org.apache.sanselan</groupId>
    <artifactId>sanselan</artifactId>
    <version>0.97-incubator</version>
</dependency>

獲取圖片長寬的代碼以下:maven

// byte[] data 圖片字節數據
Dimension dimension = Sanselan.getImageSize(data);
int width = dimension.width;
int height = dimension.height;
相關文章
相關標籤/搜索