java實現圖片壓縮

最近做的項目中用到圖片加密技術,需要用ImageIO.read()讀取圖片獲取其RGB分量,但是其可以讀取的圖片大小有限制,正常手機拍的圖片其讀取不出來,所以我們就使用到了圖片壓縮技術,主要有兩種壓縮方法:1,可以按原圖片的大小按比例壓縮;2,按需要的寬和高壓縮成固定大小的圖片,兩種方式實現的方法相同,我採用了第二種 ,核心代碼如下:

public static void imageScale(File file,int width,int height,File file2) throws IOException
 {
//讀取圖片,並獲得圖片的寬和高
  BufferedImage src_image=ImageIO.read(file);
  int image_width=src_image.getWidth();
  int image_height=src_image.getHeight();
//  這種是按比例壓縮,得到新的長寬高。
//  int image_width2=(int) (image_width*0.5);
//  int image_height2=(int) (image_height*0.5);
 //聲明一個圖片容器,利用dramImage方法繪製新的圖片
  BufferedImage buf_image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
  buf_image.getGraphics().drawImage(src_image, 0, 0, width, height, null);
 //io流輸出圖片
  FileOutputStream fos=new FileOutputStream(file2);
  JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
  encoder.encode(buf_image);
  fos.close();
 }


發佈了27 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章