在发送到服务器之前调整图像大小

时间:2016-04-26 21:01:11

标签: android image bitmap network-programming

我的设备上有一个非常大的图像(不带设备摄像头)我需要在将图像发送到服务器之前调整图像大小。所以说它最初是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);
}

1 个答案:

答案 0 :(得分:1)

在您的代码中尝试此操作:

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");

它对我有用!