欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发剪裁图片实现方法(直接操作bitmap)

程序员文章站 2023-01-29 21:08:19
android开发剪裁图片实现方法(直接操作bitmap)。 /** * 按正方形剪裁图片 * 指定正方形边长 */ p...

android开发剪裁图片实现方法(直接操作bitmap)。

    /**
     * 按正方形剪裁图片
     * 指定正方形边长
     */
    public static bitmap imagecrop(bitmap bitmap, int width) {
        // 得到图片的宽,高
        int w = bitmap.getwidth();
        int h = bitmap.getheight();

        //width最大不能超过长方形的短边
        if (w < width || h < width) {
            width = w > h ? h : w;
        }

        int retx = (w - width) / 2;
        int rety = (h - width) / 2;

        return bitmap.createbitmap(bitmap, retx, rety, width, width, null, false);
    }
    /**
     * 按正方形剪裁图片
     * 截最大的正方形
     */
    public static bitmap imagecrop(bitmap bitmap) {
        // 得到图片的宽,高
        int w = bitmap.getwidth();
        int h = bitmap.getheight();

        int width = w > h ? h : w;

        int retx = (w - width) / 2;
        int rety = (h - width) / 2;

        return bitmap.createbitmap(bitmap, retx, rety, width, width, null, false);
    }

这两种方法截出来的正方形和原图片的中心都是重合的。其实只要善用bitmap.createbitmap(bitmap source, int x, int y, int width, int height)这个方法,想截什么样的图都可以。