프로그래밍/android

android 비트맵 라운드 처리 (Rounded Bitmap)

-샤리- 2022. 2. 28. 14:32

안드로이드에서 이미지 작업을 쉽게 할 수 있도록 제공되는 서드파티 라이브러리가 많이 있지만, 때로는 서드파티 라이브러리를 사용할 수 없어서 직접 핸들링을 해야 하는 경우가 있다.

private fun getRoundedCornerBitmap(bitmap: Bitmap): Bitmap? {
    val output = Bitmap.createBitmap(
        bitmap.width,
        bitmap.height, Bitmap.Config.ARGB_8888
    )
    
    val canvas = Canvas(output)
    val paint = Paint()
    val rect = Rect(0, 0, bitmap.width, bitmap.height)
    val rectF = RectF(rect)
    
    val roundPx = 20f
    paint.isAntiAlias = true
    canvas.drawARGB(0, 0, 0, 0)
    canvas.drawRoundRect(rectF, roundPx, roundPx, paint)
    paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
    canvas.drawBitmap(bitmap, rect, rect, paint)
    
    return output
}