一般Java要取得圖片的長寬size大部份的人,也是最簡單的方法,
就是使用java.awt.image.BufferedImage來取得,不過有時JVM在釋放記憶體來不及時,很容易會出Exception
這時候可以利用Jmagick來取得,它會呼叫外部的ImageMagick 的dll來取得長寬,
以下就是原始碼:
import magick.ImageInfo; import magick.MagickException; import magick.MagickImage; import java.awt.Dimension; public static int[] getImageWH(String source) { if (System.getProperty("jmagick.systemclassloader") == null) { System.setProperty("jmagick.systemclassloader", "no"); } MagickImage image = null; int[] wh = new int[] { -1, -1 }; try { ImageInfo info = new ImageInfo(source); image = new MagickImage(info); Dimension imageDim = image.getDimension(); System.out.println(source + "圖片長寬:" + imageDim.width + "," + imageDim.height); wh[0] = imageDim.width; wh[1] = imageDim.height; image.destroyImages(); image = null; } catch (MagickException e) { System.out.println("取得圖檔大小失敗:" + source + ":" + wh[0] + "," + wh[1]); // ORG_URL_PATH } finally { if (image != null) image.destroyImages(); image = null; } return wh; }
其它資料