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