麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > Android > 正文

Android圖片特效:黑白特效、圓角效果、高斯模糊

2020-04-11 12:30:10
字體:
供稿:網(wǎng)友

1.黑白效果

復(fù)制代碼 代碼如下:

/**
     * 將彩色圖轉(zhuǎn)換為黑白圖
     *
     * @param 位圖
     * @return 返回轉(zhuǎn)換好的位圖
     */
    public static Bitmap convertToBlackWhite(Bitmap bmp) {
        int width = bmp.getWidth(); // 獲取位圖的寬
        int height = bmp.getHeight(); // 獲取位圖的高

        int[] pixels = new int[width * height]; // 通過位圖的大小創(chuàng)建像素點(diǎn)數(shù)組

        bmp.getPixels(pixels, 0, width, 0, 0, width, height);
        int alpha = 0xFF << 24;
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                int grey = pixels[width * i + j];

                int red = ((grey & 0x00FF0000) >> 16);
                int green = ((grey & 0x0000FF00) >> 8);
                int blue = (grey & 0x000000FF);

                grey = (int) (red * 0.3 + green * 0.59 + blue * 0.11);
                grey = alpha | (grey << 16) | (grey << 8) | grey;
                pixels[width * i + j] = grey;
            }
        }
        Bitmap newBmp = Bitmap.createBitmap(width, height, Config.RGB_565);
        newBmp.setPixels(pixels, 0, width, 0, 0, width, height);
        return newBmp;
    }

2.圖片圓角

復(fù)制代碼 代碼如下:

/**
     * 轉(zhuǎn)換成圓角
     *
     * @param bmp
     * @param roundPx
     * @return
     */
    public static Bitmap convertToRoundedCorner(Bitmap bmp, float roundPx) {

        Bitmap newBmp = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(),
                Config.ARGB_8888);
        // 得到畫布
        Canvas canvas = new Canvas(newBmp);

        final int color = 0xff424242;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bmp.getWidth(), bmp.getHeight());
        final RectF rectF = new RectF(rect);

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        // 第二個(gè)和第三個(gè)參數(shù)一樣則畫的是正圓的一角,否則是橢圓的一角
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(bmp, rect, rect, paint);

        return newBmp;
    }

3.高斯模糊

復(fù)制代碼 代碼如下:

/**
     * 高斯模糊
     *
     * @param bmp
     * @return
     */
    public static Bitmap convertToBlur(Bitmap bmp) {
        // 高斯矩陣
        int[] gauss = new int[] { 1, 2, 1, 2, 4, 2, 1, 2, 1 };

        int width = bmp.getWidth();
        int height = bmp.getHeight();
        Bitmap newBmp = Bitmap.createBitmap(width, height,
                Bitmap.Config.RGB_565);

        int pixR = 0;
        int pixG = 0;
        int pixB = 0;

        int pixColor = 0;

        int newR = 0;
        int newG = 0;
        int newB = 0;

        int delta = 16; // 值越小圖片會越亮,越大則越暗

        int idx = 0;
        int[] pixels = new int[width * height];
        bmp.getPixels(pixels, 0, width, 0, 0, width, height);
        for (int i = 1, length = height - 1; i < length; i++) {
            for (int k = 1, len = width - 1; k < len; k++) {
                idx = 0;
                for (int m = -1; m <= 1; m++) {
                    for (int n = -1; n <= 1; n++) {
                        pixColor = pixels[(i + m) * width + k + n];
                        pixR = Color.red(pixColor);
                        pixG = Color.green(pixColor);
                        pixB = Color.blue(pixColor);

                        newR = newR + pixR * gauss[idx];
                        newG = newG + pixG * gauss[idx];
                        newB = newB + pixB * gauss[idx];
                        idx++;
                    }
                }

                newR /= delta;
                newG /= delta;
                newB /= delta;

                newR = Math.min(255, Math.max(0, newR));
                newG = Math.min(255, Math.max(0, newG));
                newB = Math.min(255, Math.max(0, newB));

                pixels[i * width + k] = Color.argb(255, newR, newG, newB);

                newR = 0;
                newG = 0;
                newB = 0;
            }
        }

        newBmp.setPixels(pixels, 0, width, 0, 0, width, height);

        return newBmp;
    }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美亚洲国产一区二区三区 | 在线看一区二区三区 | 欧美精品日日鲁夜夜添 | 水卜樱一区二区av | 欧美日韩国产成人在线 | 免费一级欧美在线观看视频 | 成人免费一区二区三区视频网站 | 久草在线新视觉 | 日本高清无遮挡 | 欧美成人理论片乱 | av免费入口 | 欧美成人精品一区二区三区 | 国产成人精品午夜 | 久久精品视频黄色 | 看黄在线观看 | 成人国产免费观看 | 性盈盈盈影院 | h视频免费在线 | 欧美成人一区二区三区电影 | 久久思思爱 | 成人免费一区二区三区在线观看 | 久久久久北条麻妃免费看 | 欧美精品免费一区二区三区 | 亚洲啪 | 久久综合入口 | 成人精品一区二区 | 精品一区二区三区四区在线 | 最新欧美精品一区二区三区 | 51国产偷自视频区视频小蝌蚪 | 视频一区 中文字幕 | 国产成年人网站 | 久久亚洲精品国产一区 | 国产大片中文字幕在线观看 | 久久免费视频一区二区三区 | 激情亚洲一区二区三区 | 毛片一区二区三区四区 | 欧美乱论 | 欧美男女爱爱视频 | h色视频在线观看 | 亚洲电影免费观看国语版 | 免费毛片电影 |