我的设备上有一张非常大的图像(不是用设备相机拍摄的)我需要在将图像发送到服务器之前调整图像大小。所以说它原来是 14mb,我想把它减少到 2mb。我想在不损失质量的情况下调整图像的大小。我的意思是服务器将允许放大照片。所以我认为密度很重要。除了我不明白 inDensity 在这方面是如何运作的。有人能解释一下我如何将照片大小调整为 2mb 但保持如此高的密度以使图像可以高质量缩放吗?或者这是不可能的。
我已经知道如何调整图片大小了:
public static Bitmap resizeImage(String file, int reqHeight, int reqWidth) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file, options);
options.inSampleSize = calculateInSampleSize(options, reqHeight, reqWidth);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(file, options);
}
最佳答案
在你的代码中试试这个:
Bitmap bmp = BitmapFactory.decodeFile(myImage)
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bmp.compress(CompressFormat.JPEG, 70, bos);
InputStream in = new ByteArrayInputStream(bos.toByteArray());
ContentBody image = new InputStreamBody(in, "image/jpeg", "filename");
它对我有用!
关于android - 在发送到服务器之前调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36875663/