美文网首页
Android实现制作灰色图片

Android实现制作灰色图片

作者: 北漂攻城狮的泪 | 来源:发表于2017-06-21 20:09 被阅读0次

    色彩矩阵

    要想实现Android图像特效处理需要了解色彩矩阵:

    色彩处理需要三个方面调整图片颜色:
    1、色调-------------物体传播的颜色

    2、饱和度--------------------颜色的纯度

    3、亮度-------------------颜色的相对明暗

    Android系统封装了ColorMatrix类,通过这个类可以很简单通过修改矩阵值来修改图片颜色效果。

    实例化:

    ColorMatrix colorMatrix =newColorMatrix();

    1、setRotate(int axis,float degree)设置色调,参数一用0、1、2代表red、Green、Blue三种颜色,参数二表示需要处理的值;

    2、setSaturation(float sat)设置颜色饱和度,参数表示饱和度值,参数为0就是灰色头像了

    3、setScale(foat lum,float lum,float lum,1)设置亮度,当lum为0时,图片就变为黑色。

    4.postConcat()方法将矩阵效果混合,从而叠加处理效果。

    效果展示:

    原图 代码重新生成后

    附上代码:

    **

    * Created by MSI on 2017/6/21.

    */

    public class GrayPicture {

    Bitmap bitmap;

    /**

    *

    *@param btm 需要变色的图片

    *@param mHue 色调值,该出默认为0

    *@param mStauration 饱和度值,该出默认为0

    *@param mLum 亮度值,该出默认为1,亮度值为0则会出现黑屏

    */

    public Bitmap setBitmap(Bitmap btm,floatmHue,floatmStauration ,floatmLum){

    ColorMatrix colorMatrix =newColorMatrix();

    colorMatrix.setRotate(0, mHue);

    colorMatrix.setRotate(1, mHue);

    colorMatrix.setRotate(2, mHue);

    ColorMatrix colorMatrix1 =newColorMatrix();

    colorMatrix1.setSaturation(mStauration);

    ColorMatrix colorMatrix2 =newColorMatrix();

    //        colorMatrix2.setScale(mLum, mLum, mLum, 1);

    colorMatrix2.setScale(1,1,1,1);

    ColorMatrix colorMatrixs =newColorMatrix();

    colorMatrixs.postConcat(colorMatrix);

    colorMatrixs.postConcat(colorMatrix1);

    colorMatrixs.postConcat(colorMatrix2);

    bitmap= Bitmap.createBitmap(btm.getWidth(), btm.getHeight(), Bitmap.Config.ARGB_8888);

    finalPaint paint =newPaint();

    paint.setAntiAlias(true);

    Canvas canvas =newCanvas(bitmap);

    paint.setColorFilter(newColorMatrixColorFilter(colorMatrixs));

    canvas.drawBitmap(btm,0,0, paint);

    returnbitmap;

    }

    }

    相关文章

      网友评论

          本文标题:Android实现制作灰色图片

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