2012-04-17 13 views
6

En mi solicitud, yo estoy invocando la aplicación de la cámara y tomar una foto y guardarlo en un directorio en particular (Ej/sdcard etc)Cómo reducir el tamaño de imagen JPEG en Android

La imagen se guarda como un archivo JPEG imagen. ¿Cómo reduzco el tamaño de la imagen? ¿Hay disponible algún codificador de imagen o compresión disponible?

me encontré con otra reseña en: Android Reduce Size Of Camera Picture

pero esto es escalar la imagen. Estoy buscando algo que pueda comprimir o codificar. ¿Es posible?

Gracias por adelantado, Perumal

+0

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

+0

http://stackoverflow.com/preguntas/6464062/compresión de imagen-en-android – m4n07

+0

[Tome una mirada desde este enlace] [1] [1]: http://stackoverflow.com/questions/10081008/outofmemoryerror-in- juego-con-muchas-pequeñas-imágenes/10086141 # 10086141 Espero que te ayude. –

Respuesta

13

no estoy seguro de todos modos se puede probar este one.For reducir el tamaño de la imagen primero debe convertir la imagen a mapa de bits antes de guardarla en el directorio particular, y comprimir el mapa de bits establecer la calidad de la imagen y escribirla en la ruta correcta. La calidad de la imagen se puede cambiar y espero que esto lo ayude a reducir el tamaño de la imagen.

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

API:

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

'100' significa bueno o malo? – faisal1208

+0

@ faisal1208 100 significa la mejor calidad. – Adrian

1

puede ser la pieza que está debajo del código es útil para usted

 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); 
Cuestiones relacionadas