Skip to content

Commit d68fb87

Browse files
committed
add getCircularBitmap and getRoundedEdgeBitmap from the main project merge in 80014b7
1 parent d2a76e2 commit d68fb87

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@
55
import android.database.Cursor;
66
import android.graphics.Bitmap;
77
import android.graphics.BitmapFactory;
8+
import android.graphics.Canvas;
9+
import android.graphics.Color;
810
import android.graphics.Matrix;
11+
import android.graphics.Paint;
12+
import android.graphics.PorterDuff;
13+
import android.graphics.PorterDuffXfermode;
14+
import android.graphics.Rect;
15+
import android.graphics.RectF;
916
import android.media.ExifInterface;
1017
import android.net.Uri;
1118
import android.os.AsyncTask;
@@ -490,4 +497,58 @@ public static byte[] createThumbnailFromUri(Context context,
490497

491498
return stream.toByteArray();
492499
}
500+
501+
public static Bitmap getCircularBitmap(final Bitmap bitmap) {
502+
if (bitmap==null)
503+
return null;
504+
505+
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
506+
final Canvas canvas = new Canvas(output);
507+
final Paint paint = new Paint();
508+
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
509+
final RectF rectF = new RectF(rect);
510+
511+
paint.setAntiAlias(true);
512+
canvas.drawARGB(0, 0, 0, 0);
513+
paint.setColor(Color.RED);
514+
canvas.drawOval(rectF, paint);
515+
516+
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
517+
canvas.drawBitmap(bitmap, rect, rect, paint);
518+
519+
// outline
520+
paint.setStyle(Paint.Style.STROKE);
521+
paint.setStrokeWidth(1f);
522+
paint.setColor(Color.DKGRAY);
523+
canvas.drawOval(rectF, paint);
524+
525+
return output;
526+
}
527+
528+
public static Bitmap getRoundedEdgeBitmap(final Bitmap bitmap, int radius) {
529+
if (bitmap == null) {
530+
return null;
531+
}
532+
533+
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
534+
final Canvas canvas = new Canvas(output);
535+
final Paint paint = new Paint();
536+
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
537+
final RectF rectF = new RectF(rect);
538+
539+
paint.setAntiAlias(true);
540+
canvas.drawARGB(0, 0, 0, 0);
541+
paint.setColor(Color.RED);
542+
canvas.drawRoundRect(rectF, radius, radius, paint);
543+
544+
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
545+
canvas.drawBitmap(bitmap, rect, rect, paint);
546+
547+
paint.setStyle(Paint.Style.STROKE);
548+
paint.setStrokeWidth(1f);
549+
paint.setColor(Color.DKGRAY);
550+
canvas.drawRoundRect(rectF, radius, radius, paint);
551+
552+
return output;
553+
}
493554
}

0 commit comments

Comments
 (0)