直播app开发搭建,Android studio 图片压缩
获取图片目录
File file=Environment.getExternalStorageDirectory();//获取根路径 storage/emulated/0
String path1=file.getPath()+"/Pictures/1655215651628.jpg";//Pictures文件夹下面的 1655215651628.jpg图片名
例
//path 压缩图片的路径
String path="/storage/emulated/0/Pictures/1655215651628.jpg";
Bitmap bitmap = obtainImageFromPath(path, 100, 160);
saveBitmapFile(bitmap);//把压缩图片储存
image.setImageBitmap(bitmap);
//传入路径和宽高
public static Bitmap obtainImageFromPath(String path, int width, int height) {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, o);
o.inSampleSize = calculateSampleSize(o, width, height);
o.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(path, o);
}
//计算样本量
private static int calculateSampleSize(BitmapFactory.Options o, int reqWidth, int reqHeight) {
int sampleSize = 1;
if (o.outWidth > reqWidth || o.outHeight > reqHeight) {
final int halfWidth = o.outWidth / 2;
final int halfHeight = o.outHeight / 2;
while ((halfHeight / sampleSize) >= reqHeight
&& (halfWidth / sampleSize) >= reqWidth) {
sampleSize *= 2;
}
}
return sampleSize;
}
//保存压缩的文件
public void saveBitmapFile(Bitmap bitmap){
File file=new File("/storage/emulated/0/Pictures/1655215651628.jpg");//将要保存图片的路径,图片的大小已经改变
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
以上就是 直播app开发搭建,Android studio 图片压缩,更多内容欢迎关注之后的文章
标签:int,app,bitmap,BitmapFactory,sampleSize,studio,path,Android,图片 From: https://www.cnblogs.com/yunbaomengnan/p/17732586.html