본문 바로가기

안드로이드

네모난 비트맵을 원형으로 자르기

/**
* @MethodDescription : image circle make
* @param bitmap rectangle image
* @return bitmap circel image
*/
private Bitmap setImageCircle(Bitmap bitmap, int drawSize){
BitmapFactory.Options option = new BitmapFactory.Options();
option.inSampleSize = 1;
option.inPurgeable = true;
option.inDither = true;
Bitmap circleBack = BitmapFactory.decodeResource(getUIThis().getResources(), R.drawable.circleback, option);
circleBack = circleBack.createScaledBitmap(circleBack, drawSize, drawSize, false);
Paint paint = new Paint();
Bitmap back = circleBack.copy(Config.ARGB_8888, true);
Canvas canvas = new Canvas(back);
canvas.drawBitmap(bitmap, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP));
        canvas.drawBitmap(circleBack, 0, 0, paint);
        
        if(circleBack!=null)
        circleBack.recycle();
        circleBack = null;
        
        return back;
}