zoukankan      html  css  js  c++  java
  • ColorMatrix图片饱和度设置

    package com.loaderman.customviewdemo;
    
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.ColorMatrix;
    import android.graphics.ColorMatrixColorFilter;
    import android.graphics.Paint;
    import android.os.Bundle;
    import android.widget.ImageView;
    import android.widget.SeekBar;
    
    public class MainActivity extends Activity {
        private SeekBar mSeekBar;
        private ImageView mImageView;
        private Bitmap mOriginBmp,mTempBmp;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mImageView = (ImageView) findViewById(R.id.img);
            mSeekBar = (SeekBar)findViewById(R.id.seekbar);
            mOriginBmp = BitmapFactory.decodeResource(getResources(), R.drawable.dog);
            mTempBmp = Bitmap.createBitmap(mOriginBmp.getWidth(), mOriginBmp.getHeight(),
                    Bitmap.Config.ARGB_8888);
    
    
            mSeekBar.setMax(20);
            mSeekBar.setProgress(1);
            mSeekBar.setProgress(10);
    
            mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    
                    Bitmap bitmap = handleColorMatrixBmp(progress);
                    mImageView.setImageBitmap(bitmap);
                }
    
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
    
                }
    
                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
    
                }
            });
    
        }
    
        private Bitmap handleColorMatrixBmp(int progress){
            // 创建一个相同尺寸的可变的位图区,用于绘制调色后的图片
            Canvas canvas = new Canvas(mTempBmp); // 得到画笔对象
            Paint paint = new Paint(); // 新建paint
            paint.setAntiAlias(true); // 设置抗锯齿,也即是边缘做平滑处理
            ColorMatrix mSaturationMatrix = new ColorMatrix();
    
            mSaturationMatrix.setSaturation(progress);
    
            paint.setColorFilter(new ColorMatrixColorFilter(mSaturationMatrix));// 设置颜色变换效果
            canvas.drawBitmap(mOriginBmp, 0, 0, paint); // 将颜色变化后的图片输出到新创建的位图区
            // 返回新的位图,也即调色处理后的图片
            return mTempBmp;
        }
    
    
        private Bitmap handleColorRotateBmp(int progress){
            // 创建一个相同尺寸的可变的位图区,用于绘制调色后的图片
            Canvas canvas = new Canvas(mTempBmp); // 得到画笔对象
            Paint paint = new Paint(); // 新建paint
            paint.setAntiAlias(true); // 设置抗锯齿,也即是边缘做平滑处理
            ColorMatrix mSaturationMatrix = new ColorMatrix();
    
            mSaturationMatrix.setSaturation(progress);
    
            paint.setColorFilter(new ColorMatrixColorFilter(mSaturationMatrix));// 设置颜色变换效果
            canvas.drawBitmap(mOriginBmp, 0, 0, paint); // 将颜色变化后的图片输出到新创建的位图区
            // 返回新的位图,也即调色处理后的图片
            return mTempBmp;
        }
    }

    效果:

  • 相关阅读:
    Mac安装WineHQ
    Ubuntu 16.04下使用Wine安装文件比对工具Beyond Compare 4
    Ubuntu 16.04下安装WineHQ
    Ubuntu 16.04下使用Wine安装PowerDesigner15
    Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
    Ubuntu 16.04下使用Wine安装Xshell 4和Xftp 4
    MySQL中数据类型(char(n)、varchar(n)、nchar(n)、nvarchar(n)的区别)(转)
    Ubuntu 16.04安装MongoDB的GUI工具RoboMongo
    Linux下Shell的快捷键(转)
    Jackson反序列化错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解决方法
  • 原文地址:https://www.cnblogs.com/loaderman/p/10232372.html
Copyright © 2011-2022 走看看