2012-04-17 6 views
6

In meiner Anwendung, mir Berufung auf die Kamera-Anwendung und ein Bild aufnehmen und es in einem bestimmten Verzeichnis (zB/sdcard etc)Wie Größe von JPEG-Bild in Android reduzieren

Das Bild als JPEG gespeichert Speicher Bild. Wie reduziere ich die Größe des Bildes? Gibt es einen verfügbaren Bild-Encoder oder eine verfügbare Komprimierung?

stieß ich auf einen anderen Eintrag auf: Android Reduce Size Of Camera Picture

Aber das Bild skaliert. Ich suche nach etwas, das komprimieren oder kodieren kann. Ist es möglich?

Dank im Voraus, Perumal

+0

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

+0

http://stackoverflow.com/Fragen/6464062/Kompresse-Bild-in-android – m4n07

+0

[einen Blick von diesem Link Nehmen] [1] [1]: http://stackoverflow.com/questions/10081008/outofmemoryerror-in- Spiel mit vielen kleinen Bildern/10086141 # 10086141 Ich hoffe, es wird Ihnen helfen. –

Antwort

13

bin nicht sicher, trotzdem können Sie versuchen, diese one.For Verringerung der Größe des Bildes nützlich ist Zuerst sollten Sie das Bild in Bitmap konvertieren, bevor Sie es in das bestimmte Verzeichnis speichern, und komprimieren Sie die Bitmap die Qualität des Bildes und schreiben Sie es auf den richtigen Pfad.Die Qualität des Bildes kann geändert werden und hoffe, dass dies hilft Ihnen zu reduzieren die Größe des Bildes.

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

API:

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

'100' bedeutet gut oder schlecht? – faisal1208

+0

@ faisal1208 100 bedeutet beste Qualität. – Adrian

1

das unten Stück Code für Sie sein kann ich

 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); 
Verwandte Themen