2012-04-17 35 views
6

Trong ứng dụng của tôi, tôi gọi ứng dụng máy ảnh và chụp ảnh và lưu nó vào một thư mục cụ thể (Ví dụ/sdcard, v.v.)Cách giảm kích thước ảnh JPEG trong Android

Ảnh được lưu dưới dạng JPEG hình ảnh. Làm cách nào để giảm kích thước của hình ảnh? Có sẵn bộ mã hóa hoặc nén hình ảnh sẵn có không?

Tôi đã xem qua niêm yết khác tại địa chỉ: Android Reduce Size Of Camera Picture

Nhưng điều này được nhân rộng hình ảnh. Tôi đang tìm một thứ có thể nén hoặc mã hóa. Có thể không?

Thanks Trong Advance, Perumal

+0

http://stackoverflow.com/questions/4943016/android-how-to-compress-or-downsize-an-image – m4n07

+0

http://stackoverflow.com/câu hỏi/6464062/nén hình ảnh-in-android – m4n07

+0

[Hãy xem từ liên kết này] [1] [1]: http://stackoverflow.com/questions/10081008/outofmemoryerror-in- game-with-many-small-images/10086141 # 10086141 Hy vọng nó sẽ giúp bạn. –

Trả lời

13

Tôi không chắc chắn nào bạn có thể thử này one.For giảm kích thước của hình ảnh Trước tiên, bạn nên chuyển đổi hình ảnh thành bitmap trước khi lưu nó vào thư mục cụ thể và nén bitmap đặt chất lượng của hình ảnh và ghi nó vào đúng đường dẫn. Chất lượng của hình ảnh có thể thay đổi và hy vọng điều này sẽ giúp bạn giảm kích thước của hình ảnh.

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);` 

API:

compress (Bitmap.CompressFormat format, int quality, OutputStream stream) 
+0

'100' có nghĩa là tốt hay xấu? – faisal1208

+0

@ faisal1208 100 có nghĩa là chất lượng tốt nhất. – Adrian

1

Có thể là mảnh dưới đây của mã là hữu ích cho bạn

 opt = new BitmapFactory.Options(); 
     opt.inTempStorage = new byte[16 * 1024]; 
     opt.inSampleSize = 4; 
     opt.outWidth = 640; 
     opt.outHeight = 480; 
     Bitmap imageBitmap = BitmapFactory 
       .decodeStream(in, new Rect(), opt); 
     Bitmap map = Bitmap.createScaledBitmap(imageBitmap, 100, 100, true); 
     BitmapDrawable bmd = new BitmapDrawable(map); 
     ByteArrayOutputStream bao = new ByteArrayOutputStream(); 
     map.compress(Bitmap.CompressFormat.PNG, 90, bao); 
     ba = bao.toByteArray(); 
     imagedata=Base64.encodeBytes(ba); 
Các vấn đề liên quan