Bitmap image resizing



정확한 소스들은 아님. 그냥 참고 하삼....

2번은 BrowserActivity.java 소스의 함수.


1. Bitmap image resizing source


public class BitmapScale extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        LinearLayout linLayout = new LinearLayout(this); 
        
        // load the origial BitMap (500 x 500 px) 
        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.android); 
        
        int width = bitmapOrg.getWidth(); 
        int height = bitmapOrg.getHeight(); 
        int newWidth = 200; 
        int newHeight = 200; 
        
        // 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);
        //matrix.preScale(scaleWidth, scaleHeight);
        // rotate the Bitmap 
        matrix.postRotate(45); 

        // recreate the new Bitmap 
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true); 
    
        // make a Drawable from Bitmap to allow to set the BitMap 
        // to the ImageView, ImageButton or what ever 
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); 
        
        ImageView imageView = new ImageView(this); 
        
        // set the Drawable on the ImageView 
        imageView.setImageDrawable(bmd); 
      
        // center the Image 
        imageView.setScaleType(ScaleType.CENTER); 
        
        // add ImageView to the Layout 
        linLayout.addView(imageView, 
          new LinearLayout.LayoutParams( 
                      LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT 
                ) 
        ); 
        
        // set LinearLayout as ContentView 
        setContentView(linLayout); 
        
    }
}


2. webview 에서 capture 화면 resizing 하는 source


    private Bitmap createScreenshot(WebView view) {

        Picture thumbnail = view.capturePicture();
        if (thumbnail == null) {
            return null;
        }
        Bitmap bm = Bitmap.createBitmap(getDesiredThumbnailWidth(this),
                getDesiredThumbnailHeight(this), Bitmap.Config.ARGB_4444);

        Canvas canvas = new Canvas(bm);

        int thumbnailWidth = thumbnail.getWidth();

        if (thumbnailWidth > 0) {
            float scaleFactor = (float) getDesiredThumbnailWidth(this) /
                    (float)thumbnailWidth;
            canvas.scale(scaleFactor, scaleFactor);
        }

        thumbnail.draw(canvas);
        return bm;
    }


by 수영사랑 | 2009/12/09 11:49 | Android Reference | 트랙백 | 핑백(2) | 덧글(0)

트랙백 주소 : http://skyswim42.egloos.com/tb/3477279
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 안드로이드 개발 팁 &laqu.. at 2011/11/06 13:19

... n() 64 Bitmap image resizing source http://skyswim42.egloos.com/3477279 Bitmap bitmapOrg = BitmapFactor ... more

Linked at null : android :.. at 2012/04/06 11:29

... ; * 참고 소스 : http://skyswim42.egloos.com/3477279 ( webview 에서 capture 화면 resizin ... more

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶