一般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;
}
其它資料