将矩形图片转化为圆形图片

Posted Tears_fg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将矩形图片转化为圆形图片相关的知识,希望对你有一定的参考价值。

功能:点击按钮将一张矩形的图片裁剪为圆形的图片,圆形图片为矩形的内切圆

工具类:

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;

/**
 * 将矩形图片变为圆形的工具类
 */
public class CircleBitmap  {

    public Bitmap getBitmap(Bitmap source) {
        //我这里是得到bitmap宽与高的最小值,然后作为圆的半径  
        int min = source.getHeight()>source.getWidth()?source.getWidth():source.getHeight();
        return createCircleImage(source,min);
    }

    /**
     * 创建圆形图片的一个方法
     * @param source  需要转变成圆形的bitmap图片
     * @param min  圆形bitmap的半径
     * @return 返回变换好的圆形bitmap
     */
    private Bitmap createCircleImage(Bitmap source, int min)
    {
        final Paint paint = new Paint();
        paint.setAntiAlias(true);
        Bitmap target = Bitmap.createBitmap(min, min, Bitmap.Config.ARGB_8888);
        /**
         * 产生一个同样大小的画布
         */
        Canvas canvas = new Canvas(target);
        /**
         * 首先绘制圆形
         */
        canvas.drawCircle(min / 2, min / 2, min / 2, paint);
        /**
         * 使用SRC_IN  交互
         */
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        /**
         * 绘制图片
         */
        canvas.drawBitmap(source, 0, 0, paint);
        return target;
    }

}

实例:

 

以上是关于将矩形图片转化为圆形图片的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示

Canvas 绘制圆形图片绘制圆角矩形图片?

android中 怎么显示一直图片为圆形图片

用户头像的圆形显示

Android实现本地上传图片并设置为圆形头像

createjs 绘制圆形图片