美文网首页
Paint画笔(二)

Paint画笔(二)

作者: migill | 来源:发表于2019-09-30 19:27 被阅读0次

Paint画笔(一)

1、Paint-滤镜

1、LightingColorFilter滤镜
   /**
         LightingColorFilter(@ColorInt int mul, @ColorInt int add)
         mul和add都是和颜色值格式形同的int值,其中mul用来和目标像素相乘,add用来和目标像素相加;
         * R' = R * mul.R / 0xff + add.R
         * G' = G * mul.G / 0xff + add.G
         * B' = B * mul.B / 0xff + add.B
         */
        //红色去除掉
        LightingColorFilter lighting = new LightingColorFilter(0x00ffff,0x000000);
        mPaint.setColorFilter(lighting);
        canvas.drawBitmap(mBitmap, 0,0, mPaint);
        //原始图片效果
        LightingColorFilter lighting = new LightingColorFilter(0xffffff,0x000000);
        mPaint.setColorFilter(lighting);
        canvas.drawBitmap(mBitmap, 0,0, mPaint);
        //绿色更亮
        LightingColorFilter lighting = new LightingColorFilter(0xffffff,0x003000);
        mPaint.setColorFilter(lighting);
        canvas.drawBitmap(mBitmap, 0,0, mPaint);
2、PorterDuffColorFilter滤镜
        /**
         *  PorterDuffColorFilter(@ColorInt int color, @NonNull PorterDuff.Mode mode)
         *  color,具体的颜色值,例如Color.RED
         *  mode,指定PorterDuff.Mode的图层混合模式
         */
        PorterDuffColorFilter porterDuffColorFilter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.DARKEN);
        mPaint.setColorFilter(porterDuffColorFilter);
        canvas.drawBitmap(mBitmap, 100, 0, mPaint);
2-1.png
3、ColorMatrixColorFilter滤镜
        //第一种方式
       float[] colorMatrix = {
                2,0,0,0,0,   //red
                0,1,0,0,0,   //green
                0,0,1,0,0,   //blue
                0,0,0,1,0    //alpha
        };

        ColorMatrixColorFilter mColorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix);
        mPaint.setColorFilter(mColorMatrixColorFilter);
        canvas.drawBitmap(mBitmap, 100, 0, mPaint);
        //第二种方式
        ColorMatrix cm = new ColorMatrix();
        //亮度调节
        cm.setScale(2,1,1,1);
        //饱和度调节0-无色彩, 1- 默认效果, >1饱和度加强
        cm.setSaturation(2);
        //色调调节
        cm.setRotate(0, 45);
        ColorMatrixColorFilter mColorMatrixColorFilter = new ColorMatrixColorFilter(cm);
        mPaint.setColorFilter(mColorMatrixColorFilter);
        canvas.drawBitmap(mBitmap, 100, 0, mPaint);



相关文章

网友评论

      本文标题:Paint画笔(二)

      本文链接:https://www.haomeiwen.com/subject/dljhpctx.html