Android二级采样

Android二级采样

二级采样

需要寻找工具类的请访问https://blog.youkuaiyun.com/SageDeceiveFiend/article/details/90215498三级缓存部分!

	什么是二级采样 二级采样是一种对图片进行压缩的技术 原理就是对图片边框进行比
	例的缩小再对图片像素点进行等比例的缩小最后形成一张新的图片这样就叫做二级采样

在这里插入图片描述
下面的图为原图 上面顶部的图为二级采样后的图片

// An highlighted block
public class MainActivity extends AppCompatActivity {

    ImageView img;
    ImageView imgimg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img=findViewById(R.id.img);
        imgimg=findViewById(R.id.imgimg);

        try {
            byte[] bytes = new MyAsnatask().execute("http://www.dv37.com/upload/editor/201804/1524894535_871992.jpg").get();
//第一次采样:只采边框 计算压缩比例          
            BitmapFactory.Options options = new BitmapFactory.Options();
           //设置只采边框
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
            int width = options.outWidth;
            int height = options.outHeight;
//计算缩放比例
            int size = 2;
            while (width / size > 400 || height / size > 400) {
                size *= 2;
            }
            设置只采边框为fasle
            options.inJustDecodeBounds=false;
            //设置缩放比例
            options.inSampleSize=size;

         Bitmap bitmap1=   BitmapFactory.decodeByteArray(bytes,0,bytes.length);

            Bitmap bitmap=BitmapFactory.decodeByteArray(bytes,0,bytes.length,options);//采样

            img.setImageBitmap(bitmap);
            imgimg.setImageBitmap(bitmap1);

        } catch (ExecutionException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值