第一段代碼:
BufferedImage src = ImageIO.read(new File(srcImageFile)); // 讀入文件
int width = src.getWidth(); // 得到源圖寬
int height = src.getHeight(); // 得到源圖長
width = 100;
height = 100;
Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 繪製縮小後的圖
g.dispose();
ImageIO.write(tag, "JPEG", new File(result));// 輸出到文件流
第二段代碼:
BufferedImage src = ImageIO.read(is); // 讀入文件
int width = 100;
int height = 100;
Image image = src.getScaledInstance(width, height,
Image.SCALE_DEFAULT);
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 繪製縮小後的圖
g.dispose();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageOutputStream imOut = ImageIO.createImageOutputStream(bs);
ImageIO.write(tag, "jpg ", imOut);// 輸出到文件流
is0 = new ByteArrayInputStream(bs.toByteArray());
兩段代碼的區別:
第一段代碼處理完圖片以後要寫到硬盤裏面,而第二段代碼仍然保存在內存裏面