图片压缩(二次采样)

    xiaoxiao2023-03-16  5

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">很多时候我们在加载图片的时候并不需要把原图加载出来,例如像打开微信图片列表,可能由于控件的大小,用户视觉等等的原因,把一张原图加载出来和加载一张缩略图的效果是差不多的,这时候加载一张原图的话反而只会耗费过多的内存空间,像微信图片列表一页能够显示15张(3x5),原图的话3m左右,那一页就要耗费45m的内存了,所以这时候</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">就需要将图片进行压缩处理了。</span>

    Bitmap二次采样

    第一次采样:是为了得到从     Bitmap图像尺寸--->指定图片大小尺寸    的缩放比例。 第二次采样:利用得到缩放比例对Bitmap图像进行缩放。 //******第一次采样******* File file = new File("/mnt/shared/Image/map.bmp"); //这里是指我手机中一张127mb的图片的路径 BitmapFactory.Options option = new BitmapFactory.Options(); //获取option对象 option.inJustDecodeBounds = true; //设置为值获取图片的边界像素点,是为了后面计算出图片的宽高 Bitmap bitmap = null ; bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(),option); Log.d("bigname_log", "btnOnClick: "+option.outHeight+"."+option.outWidth); //6500,7400大概的,忘记了具体多少 int fastWidth = imageview.getWidth(); //指定尺寸 256*256 int fastHeight = imageview.getHeight(); int simpleSize = 1 ; //缩放比例*注意缩放比例只能是2的n次方,如果不是则自动就近取值。 while (option.outWidth / simpleSize > fastWidth || option.outHeight / simpleSize > fastHeight) { <span style="font-family: Arial, Helvetica, sans-serif;">//计算缩放比例</span> simpleSize *= 2; } option.inSampleSize = simpleSize ; //将计算得到的缩放比例设置到option中 Log.d("bigname_log", "btnOnClick: 缩放比例"+simpleSize); //*********第二次采样******** option.inJustDecodeBounds = false; //重新把计算边界像素设为false,不然图片无法显示 option.inPreferredConfig = Bitmap.Config.ARGB_8888 ; //可以不设 bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), option); Log.d("bigname_log", "btnOnClick: "+option.outHeight+"."+option.outWidth); //最后bitmap压缩为:176*248 imageview.setImageBitmap(bitmap); 但压缩后的bitmap显示效果并没差多少。 另外再说一下  option.inPreferredConfig = Bitmap.Config.ARGB_8888 ;  这是设置图片色彩的属性。 A:透明度 8位 R:红色    8位 G:绿色    8位 B:蓝色    8位 还有三种设置值: ARGB_4444    分别占4位的意思 RGB_565   分别占5、6、5位  ,没有透明度的图片 ALPHA_8   透明度占8位 ,只是用于只有透明度的图片 这四种色彩设置占位越多则色彩效果越好,是偏向内存还是色彩效果就看自己的取舍了。
    转载请注明原文地址: https://ju.6miu.com/read-1152741.html
    最新回复(0)