使用jdk的ImageIo處理圖片縮放,上傳原始的沒有問題,但是上傳處理的就報 error:LUT has improper length,目前根據google的結果,
老外說用了jdk1.5.0.9就沒問題了,不過還沒試驗.
另外,發現上傳gif文件時,結果預覽圖大小爲0.
今天嘗試了另外一種方法,參照 http://blog.csdn.net/fightplane/archive/2005/01/14/253200.aspx
處理代碼段
else if("png".equals(suffix)){
BufferedImage Bi = ImageIO.read(file);
double Ratio = 0.0;
// 假設圖片寬 高 最大爲120 120
Image Itemp = Bi.getScaledInstance(150, 150, Bi.SCALE_SMOOTH);
if ((Bi.getHeight() > 150) || (Bi.getWidth() > 150)) {
if (Bi.getHeight() > Bi.getWidth())
Ratio = 150.0 / Bi.getHeight();
else
Ratio = 150.0 / Bi.getWidth();
}
AffineTransformOp op = new AffineTransformOp(AffineTransform
.getScaleInstance(Ratio, Ratio), null);
Itemp = op.filter(Bi, null);
try {
ImageIO.write((BufferedImage) Itemp, "png", new File(filesavePath));
} catch (Exception ex) {
System.out.println("-----createZoomSizeImage error ImageIo.write---:"+ ex.getMessage());
log.debug("createZoomSizeImage error:"+ ex.getMessage());
}
}
上傳成功