质量压缩与二级采样

来源:互联网 发布:web安全工程师 知乎 编辑:程序博客网 时间:2024/06/02 04:12

public class MainActivity extends AppCompatActivity {
private ImageView imageview;
private ImageView imageview1;
private String path=”/sdcard/Download/aa.png”;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    imageview= (ImageView) findViewById(R.id.image);    imageview1= (ImageView) findViewById(R.id.image_comp);    Bitmap bitmap= BitmapFactory.decodeFile(path);    showBitMap(bitmap);    imageview.setImageBitmap(bitmap);    //质量压缩    massCompression(bitmap,100,"aa_100.png");    //二级采样    doubleSampling();}@TargetApi(Build.VERSION_CODES.JELLY_BEAN)private void doubleSampling() {    //Option二次采样压缩的配置参数    BitmapFactory.Options options=new BitmapFactory.Options();    //加载Bitmap时 只加载图片的信息  边框  不加载图片本身    options.inJustDecodeBounds = true;    //把图片的信息 保存到options    BitmapFactory.decodeFile(path,options);    ViewGroup.LayoutParams lp = imageview1.getLayoutParams();    int imageWidth = lp.width;    int imageHeight= lp.height;    Log.e("bitmap", "onCreate: "+imageWidth+"---"+imageHeight);    //300 200    int size=1;    while(options.outWidth/size>imageWidth||options.outHeight/size>imageHeight){        size=size*2;    }    options.inSampleSize=size;    options.inJustDecodeBounds=false;    Bitmap bitmap = BitmapFactory.decodeFile(path,options);    showBitMap(bitmap);    massCompression(bitmap,30,"aa_30_1.png");    imageview1.setImageBitmap(bitmap);}private void massCompression(Bitmap bitmap,int quality,String fileName) {    String savePath = "/sdcard/Download/"+fileName;    try {        FileOutputStream fos=new FileOutputStream(savePath);        bitmap.compress(Bitmap.CompressFormat.JPEG,quality,fos);        fos.flush();        fos.close();    } catch (Exception e) {        e.printStackTrace();    }}private void showBitMap(Bitmap bitmap) {    int width= bitmap.getWidth();    int height =bitmap.getHeight();    int byteCount = bitmap.getByteCount();    int byteCount1 = bitmap.getRowBytes()*bitmap.getHeight();    Log.e("bitmap", "onCreate: "+width+"---"+height+"---"+byteCount+"---"+byteCount1);}

}

原创粉丝点击