public static android.graphics.Bitmap | createCircularClip(android.graphics.Bitmap input, int width, int height)Generate a new bitmap (width x height pixels, ARGB_8888) with the input bitmap scaled
to fit and clipped to an inscribed circle.
if (input == null) return null;
final int inWidth = input.getWidth();
final int inHeight = input.getHeight();
final Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(output);
final Paint paint = new Paint();
paint.setShader(new BitmapShader(input, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
paint.setAntiAlias(true);
final RectF srcRect = new RectF(0, 0, inWidth, inHeight);
final RectF dstRect = new RectF(0, 0, width, height);
final Matrix m = new Matrix();
m.setRectToRect(srcRect, dstRect, Matrix.ScaleToFit.CENTER);
canvas.setMatrix(m);
canvas.drawCircle(inWidth / 2, inHeight / 2, inWidth / 2, paint);
return output;
|