프로그래밍 정리/안드로이드

[안드로이드] 이미지 크기 변경

주누다 2012. 7. 23. 11:01
반응형


주소 : http://blog.naver.com/PostView.nhn?blogId=utime&logNo=150090784436&viewDate=&currentPage=1&listtype=0



 /*
     *    Bitmap 이미지 리사이즈
     *    Src : 원본 Bitmap
     *  newHeight : 새로운 높이
     *  newWidth : 새로운 넓이
     *  참고 소스 : http://skyswim42.egloos.com/3477279 ( webview 에서 capture 화면 resizing 하는 source 도 있음 )
     */
    private BitmapDrawable BitmapResizePrc( Bitmap Src, int newHeight, int newWidth)
    {
        BitmapDrawable Result = null;
        
        int width = Src.getWidth(); 
        int height = Src.getHeight(); 

        // calculate the scale - in this case = 0.4f 
        float scaleWidth = ((float) newWidth) / width; 
        float scaleHeight = ((float) newHeight) / height; 
        
        // createa matrix for the manipulation 
        Matrix matrix = new Matrix(); 
        // resize the bit map 
        
        matrix.postScale(scaleWidth, scaleHeight);
        
        // rotate the Bitmap  회전 시키려면 주석 해제!
        //matrix.postRotate(45);

        // recreate the new Bitmap
        Bitmap resizedBitmap = Bitmap.createBitmap(Src, 0, 0, width, height, matrix, true);

        // check
        width = resizedBitmap.getWidth(); 
        height = resizedBitmap.getHeight();
        
        Log.i("ImageResize", "Image Resize Result : " + Boolean.toString((newHeight==height)&&(newWidth==width)) );
        
        // make a Drawable from Bitmap to allow to set the BitMap
        // to the ImageView, ImageButton or what ever
        Result = new BitmapDrawable(resizedBitmap);
        
        return Result;
    }


반응형