如何在不降低Android分辨率的情况下减小位图的大小?

时间:2011-05-11 19:30:48

标签: android image-processing bitmap android-camera

我有一个应用程序从相机拍摄照片,然后我对该照片进行一些图像处理操作。但这花费的时间太长,所以我想在图像处理操作之前减小位图的大小。重要的是,在较小的图像中分辨率必须良好。在android中是否有一个库,或者是否有人知道该操作的算法?

2 个答案:

答案 0 :(得分:1)

一种方法是取每个n * n块的平均值并将其转换为单个像素。它不是绝对最清晰的方法,也不会完全没有文物,但我认为你会发现现实世界的结果是可以接受的 - 而且速度非常快。

答案 1 :(得分:0)

    { Bitmap bit=Shrinkmethod(arrpath1[position], 100, 100); 
       //This reduce the size of image in 1kb size so u can also consider VM nativeheap memory

                    iv.setImageBitmap(bit);//ImageView Obj.

    }


    //To reduce the byte size of image in program

//user defined method to reduce size of image without reducing the quality of img.
        Bitmap Shrinkmethod(String file,int width,int height){
            BitmapFactory.Options bitopt=new BitmapFactory.Options();
            bitopt.inJustDecodeBounds=true;
            Bitmap bit=BitmapFactory.decodeFile(file, bitopt);

            int h=(int) Math.ceil(bitopt.outHeight/(float)height);
            int w=(int) Math.ceil(bitopt.outWidth/(float)width);

            if(h>1 || w>1){
                if(h>w){
                    bitopt.inSampleSize=h;

                }else{
                    bitopt.inSampleSize=w;
                }
            }
            bitopt.inJustDecodeBounds=false;
            bit=BitmapFactory.decodeFile(file, bitopt);



            return bit;

        }

//Try to upload ur project code and idea so that like u and me can get that to develop more android application..

Regard,
pranav