从相机捕获并将其存储在给定路径后压缩图像

时间:2018-02-22 12:55:14

标签: android image camera compression

我正在开发一个Android应用程序,需要从相机拍摄并压缩它然后将其存储到给定的路径。我是android的初学者,所以我会感谢任何一种帮助。我能拍照并将其存储在SD卡上,但无法找到压缩它的方法。我想将图像上传到服务器,所以想要压缩图像低至50kb。我尝试了很多解决方案在互联网上,但没有人能做到这一点。

2 个答案:

答案 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);
}