bitmap.compresser(Bitmap.CompressFormat.PNG,, 0, fOut) faisant de la taille de l'image plus grande que l'original
Je veux compresser l'image prise à partir d'un appareil photo au format png pour les rendre plus petits en taille,
donc je suis en utilisant ce code:
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();
Le problème est que compressedPictureFile est en fait plus grande que l'image d'origine (à partir de 1 Mo à 6 mo)
Ce qui me manque?
Et est-ce la meilleure façon de réduire la taille d'une image?
Grâce
OriginalL'auteur Dany Y | 2013-04-23
Vous devez vous connecter pour publier un commentaire.
Les images prises avec l'appareil photo sont les plus susceptibles stockées dans le
jpg
-format, qui est à perte, mais est relativement bonne pour les images avec beaucoup de couleurs (comme les photos).Lorsque vous compresser l'image bitmap à l'aide de votre méthode vous enregistrer en tant que
png
. Le png de la compression sans perte, mais peut atteindre assez petit filesizes quand il y a peu de couleurs (comme dans certains logos ou autres images). Lorsque la quantité de couleurs et de la complexité dans un fichier png augmente, la taille du fichier (ce est pourquoi, l'appareil photo enregistre une jpg - la qualité/taille de fichier rapport est beaucoup mieux que le format png pour la plupart des photographies).Donc, si vous voulez réduire la taille des photos, l'utilisation de la compression jpg et d'expérimenter avec la qualité de paramètre.
Vous pouvez également réduire la résolution des images, car cela permettra d'économiser beaucoup d'espace (un fichier avec 50% de résolution sera approx. 25% en données de taille).
Le
quality
-paramètre affecte la façon dont bien conservé les couleurs seront lors de l'utilisation de format jpg, compression. Il n'a aucun effet lors de la sortie d'un fichier png. Vous pouvez lire un peu sur lecompress
-méthode ici: developer.android.com/reference/android/graphics/...Il y a plusieurs tutoriels sur la diminution de la taille de l'image, mais, de la façon la plus simple est de simplement créer un nouveau, plus petit bitmap par
Bitmap.createScaledBitmap
: developer.android.com/reference/android/graphics/...Réponse acceptée 🙂
si vous utilisez le format PNG, puis il ne pas compresser votre image, parce que le PNG est un format sans perte. utiliser le format JPEG pour la compression de votre image
OriginalL'auteur Jave
il fonctionne très bien sur mon app
OriginalL'auteur Роман Зыков