Android: 缩放图片文件引起的OOM异常(2)

view plaincopy to clipboardprint?
ContentResolver cr = this.getContentResolver();  
try 
{  
    InputStream in = cr.openInputStream(uri);  
    Bitmap bitmap = BitmapFactory.decodeStream(in);  
    try 
    {  
        in.close();  
    }  
    catch (IOException e)  
    {  
        e.printStackTrace();  
    }  
    if(null  == bitmap)  
    {  
        Toast.makeText(this, "Head is not set successful,Decode bitmap failure", 2000);  
    }  
    //原始图片的尺寸  
    int bmpWidth  = bitmap.getWidth();  
    int bmpHeight = bitmap.getHeight();  
      
    //缩放图片的尺寸  
    float scaleWidth  = (float) 40 / bmpWidth;  
    float scaleHeight = (float) 40 / bmpHeight;  
    Matrix matrix = new Matrix();  
    matrix.postScale(scaleWidth, scaleHeight);  
      
    //产生缩放后的Bitmap对象  
    Bitmap resizeBitmap = Bitmap.createBitmap(  
        bitmap, 0, 0, bmpWidth, bmpHeight, matrix, false);  
    bitmap.recycle();  
    //Bitmap to byte[]  
    byte[] photoData = Bitmap2Bytes(resizeBitmap);  
      
    //save file  
    String fileName = "/sdcard/test.jpg";  
    FileUtil.writeToFile(fileName, photoData);  
      
    //save photo check sum to db  
    DataCenter.GetInstance().ModifyIMMUser();  
    //refresh ImageView  
}  
catch (FileNotFoundException exp)  
{  
    exp.printStackTrace();  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsgyp.html