我正在开发一个Android应用程序,需要从相机拍摄并压缩它然后将其存储到给定的路径。我是android的初学者,所以我会感谢任何一种帮助。我能拍照并将其存储在SD卡上,但无法找到压缩它的方法。我想将图像上传到服务器,所以想要压缩图像低至50kb。我尝试了很多解决方案在互联网上,但没有人能做到这一点。
答案 0 :(得分:1)
您可以参考this链接以实现图像压缩。 我已在项目中实现了此代码,并能够通过保持质量来压缩图像。
FileOutputStream out = null;
String filename = getFilename();
try {
out = new FileOutputStream(filename);
scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
您可以根据自己的要求更改数字80。 该数字表示压缩图像的质量。 质量必须在0-100范围内。 0表示压缩小尺寸,100表示压缩以获得最高质量。
由于
答案 1 :(得分:0)
您可以使用位图压缩0 = MAX压缩和100 =最小压缩。我希望这会对你有所帮助
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.WEBP, 0, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}