通常在上傳圖片的情景下,須要獲取圖片的尺寸保存進數據庫,便於之後作進一步的處理。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;