voglio comprimere l'immagine ripresa da una telecamera a formato png per renderli più piccoli di dimensioni, quindi sto usando questo codice:bitmap.compress (Bitmap.CompressFormat.PNG, 0, fOut) rendendo l'immagine più grande dimensione dell'originale
compressedPictureFile = new File(imagePath);
Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
FileOutputStream fOut = new FileOutputStream(compressedPictureFile);
boolean compressed = bitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
fOut.flush();
fOut.close();
il problema è che compressedPictureFile è in realtà più grande che l'immagine originale (da 1 Mb a 6Mb)
che cosa mi manca? E questo è il modo migliore per ridurre le dimensioni di un'immagine?
Grazie
è il parametro di qualità la stessa risoluzione? come posso ridurre la risoluzione? –
Il parametro 'quality' influisce sulla buona conservazione dei colori quando si utilizza la compressione jpg. Non ha alcun effetto quando si stampa un png. Puoi leggere un po 'il metodo 'compress' qui: http://developer.android.com/reference/android/graphics/Bitmap.html#compress%28android.graphics.Bitmap.CompressFormat,%20int,%20java .io.OutputStream% 29 – Jave
Esistono più esercitazioni per ridurre le dimensioni dell'immagine, ma il modo più semplice è semplicemente creare una nuova bitmap più piccola tramite 'Bitmap.createScaledBitmap': http://developer.android.com/reference/ android/graphics/Bitmap.html # createScaledBitmap% 28android.graphics.Bitmap,% 20int,% 20int,% 20boolean% 29 – Jave