在我的 Android 应用程序中,我想将图像上传到服务器。解决服务器不接受大于2M图片的问题。但用户可以选择大于2M的图片。
所以我想构建一个代码,使图像小于2M。
我有两种方法:
-
调整图像尺寸。如下 :
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
-
我也可以压缩图像
image.compress(Bitmap.CompressFormat.PNG, 10, fos);
这两种方法有什么区别?
调整图像大小意味着您将缩短图像的分辨率。假设用户选择一个 1000*1000 像素的图像。您要将图像转换为 300*300 图像。因此图像尺寸将会减小。
图像压缩是在不影响分辨率的情况下减小图像的文件大小。当然,减小文件大小会影响图像质量。有许多可用的压缩算法可以减小文件大小而不会对图像质量产生太大影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)