Android:指定解析度和清晰度的圖片壓縮方法源碼

來源:互聯網
上載者:User
 1 public void transImage(String fromFile, String toFile, int width, int height, int quality)
2
3 {
4
5 try
6
7 {
8
9 Bitmap bitmap = BitmapFactory.decodeFile(fromFile);
10
11 int bitmapWidth = bitmap.getWidth();
12
13 int bitmapHeight = bitmap.getHeight();
14
15 // 縮放圖片的尺寸
16
17 float scaleWidth = (float) width / bitmapWidth;
18
19 float scaleHeight = (float) height / bitmapHeight;
20
21 Matrix matrix = new Matrix();
22
23 matrix.postScale(scaleWidth, scaleHeight);
24
25 // 產生縮放後的Bitmap對象
26
27 Bitmap resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth, bitmapHeight, matrix, false);
28
29 // save file
30
31 File myCaptureFile = new File(toFile);
32
33 FileOutputStream out = new FileOutputStream(myCaptureFile);
34
35 if(resizeBitmap.compress(Bitmap.CompressFormat.JPEG, quality, out)){
36
37 out.flush();
38
39 out.close();
40
41 }
42
43 if(!bitmap.isRecycled()){
44
45 bitmap.recycle();//記得釋放資源,否則會記憶體溢出
46
47 }
48
49 if(!resizeBitmap.isRecycled()){
50
51 resizeBitmap.recycle();
52
53 }
54
55
56
57 }
58
59 catch (FileNotFoundException e)
60
61 {
62
63 e.printStackTrace();
64
65 }
66
67 catch (IOException ex)
68
69 {
70
71 ex.printStackTrace();
72
73 }
74
75 }

http://www.wizzer.cn/?p=1792

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.