1.创建实例化Bitmap Bitmap.config.ARGB_8888->每个像素存储在4字节上,每通道8位精度

2.设置偏移量,颜色参数和色光属性,通过postConcat混合属性

tips:在设置好处理的颜色矩阵后,用SetColorFilter方法new一个ColorMatrixColorFilter

3.在主方法中,设置图片,实例化,设置初始点progress/Seekbar     监听事件中添加逻辑

代码:

ImageHelper
public class ImageHelper {public static Bitmap handleImageEffect(Bitmap bm,float hue ,float saturation, float lum){Bitmap bmp=Bitmap.createBitmap(bm.getWidth(),bm.getHeight(), Bitmap.Config.ARGB_8888);Canvas canvas=new Canvas(bmp);Paint paint=new Paint();ColorMatrix mHueMatrix=new ColorMatrix();mHueMatrix.setRotate(0,hue);mHueMatrix.setRotate(1,hue);mHueMatrix.setRotate(2,hue);ColorMatrix mSaturation=new ColorMatrix();mSaturation.setSaturation(saturation);ColorMatrix mLum=new ColorMatrix();mLum.setScale(lum,lum,lum,1);ColorMatrix mImage=new ColorMatrix();mImage.postConcat(mHueMatrix);mImage.postConcat(mLum);mImage.postConcat(mSaturation);paint.setColorFilter(new ColorMatrixColorFilter(mImage));canvas.drawBitmap(bm,0,0,paint);return bmp;}

MainAc:

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.ColorMatrix;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.SeekBar;/**
 * Created by YRC on 2017/10/21.
 */
public class PrimaryColor extends Activity implements SeekBar.OnSeekBarChangeListener {private static int MID_VALUE = 127;private ImageView mImageView;private float mHue, mStauration, mLum;private Bitmap bitmap;@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.primary_color);bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.test3);mImageView = (ImageView) findViewById(R.id.imageview);SeekBar mSeekbarhue = (SeekBar) findViewById(R.id.seekbarHue);SeekBar mSeekbarSaturation = (SeekBar) findViewById(R.id.seekbarSaturation);SeekBar mSeekbarLum = (SeekBar) findViewById(R.id.seekbatLum);mSeekbarhue.setOnSeekBarChangeListener(this);mSeekbarSaturation.setOnSeekBarChangeListener(this);mSeekbarLum.setOnSeekBarChangeListener(this);int MAX_VALUE = 255;mSeekbarhue.setMax(MAX_VALUE);mSeekbarSaturation.setMax(MAX_VALUE);mSeekbarLum.setMax(MAX_VALUE);mSeekbarhue.setProgress(MID_VALUE);mSeekbarSaturation.setProgress(MID_VALUE);mSeekbarLum.setProgress(MID_VALUE);mImageView.setImageBitmap(bitmap);}@Override
    public void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) {switch (seekBar.getId()) {case R.id.seekbarHue:mHue = (progress - MID_VALUE) * 1.0F / MID_VALUE * 180;break;case R.id.seekbarSaturation:mStauration = progress * 1.0F / MID_VALUE;break;case R.id.seekbatLum:mLum = progress * 1.0F / MID_VALUE;break;}mImageView.setImageBitmap(ImageHelper.handleImageEffect(bitmap, mHue, mStauration, mLum));}@Override
    public void onStartTrackingTouch(SeekBar seekBar) {}@Override
    public void onStopTrackingTouch(SeekBar seekBar) {}
}

个人练习代码库/ColorMatrix/色调、饱和度、亮度调整相关推荐

  1. Android学习笔记之-:对Android图像色调饱和度亮度处理

    首先也简单介绍下图像的RGBA模型,R指红色(Red),G指绿色(Green),B指蓝色(Blue)及A指透明度(Alpha),由这四种元素搭配组合成了各种各样的颜色. 处理工具类及方法: publi ...

  2. 微软打造了全球最大的Git代码库

    丹棱君有话说:今年 2 月,微软宣布将用 Git 管理 Windows 源代码.随后,Visual Studio 宣布开发 "Git 虚拟文件系统(GVFS)",并将在终极项目和超 ...

  3. ​MMIT冠军方案 | 用于行为识别的时间交错网络,商汤公开视频理解代码库

    作者 | 商汤 出品 | AI科技大本营(ID:rgznai100) 本文主要介绍三个部分: 一个高效的SOTA视频特征提取网络TIN,发表于AAAI2020 ICCV19 MMIT多标签视频理解竞赛 ...

  4. NLP研究索引神器,3000+代码库,一键查找论文、GitHub库

    视学算法报道 转载自:机器之心 编辑:陈萍 NLP 领域非常实用的索引工具「The NLP Index」. 说到搜索,学术搜索也是一门学问. 擅于运用搜索可以帮助你快速寻找想要的学术资料,起到事半功倍 ...

  5. 从Google代码库找到的好东西

    Google 代码库是一个类似 SourceForge 的开源社区,大量开发者在那里上传自己的代码或素材同他人分享,Google 代码库于 2006 年启动,至今已积累了大量的好东西,本文从 Goog ...

  6. 高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 ,需要手动对三方库单独下载的git的命令如下

    高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 git clone --recursive https://github.com/gaoxiang12/slambook2.git 需要手动 ...

  7. 【PySlowFast】Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩 ...

  8. 50 多万个项目陷入混乱!只因代码库许可协议不兼容

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 提到开源,不少人都认为是免费+自由,其实并非全然如此. 每个开源工作者的追求不同.有的人只想专心写代码,不约束其他人对代码的使用范围,开 ...

  9. 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单

    圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单 // //  CircleCore.h //  Quartz // //  Created by 仙人掌 on ...

最新文章

  1. 个人随笔、收藏——(包括技术、设计思想等)
  2. 命题公式的主合取范式C语言,命题公式主范式的自动生成与形式输出.pdf
  3. 训练日志 2019.1.12
  4. ImovieBox视频下载工具
  5. linux设备模型的主要功能,第 14 章 Linux 设备模型
  6. 【java学习之路】(java SE篇)012.网络编程
  7. HTTP Error 404 - File or Directory not found caused by ISAPI filter of Sharepoint
  8. 数据库原理及应用教程课后习题答案 第4版 微课版 陈志泊主编
  9. C++综合实例——个人银行账户管理程序
  10. 看待FIL能否成功不应该只关注它的币价,而是IPFS能否完全落地应用……
  11. 时光金科php_发布中国首个社区敬老宣言,共敬美好岁月-金科全国首届重阳敬老节温暖落幕...
  12. css3中-moz、-ms、-webkit、-o 各是什么意思
  13. 迁移学习,DomainAdaption 笔记
  14. 关于七彩虹显卡命名解说
  15. java scratch_scratch进阶java教程贴
  16. 对于公司裁员和转型的无力吐槽
  17. WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)
  18. 使用Vagrant快速创建linux虚拟机
  19. JavaWeb开发酒店管理系统 中山大学南方学院
  20. 博途软件模拟输入地址问题

热门文章

  1. 对程序员最友好的低代码平台——iVX(个人开发者终身免费)
  2. 如何用matlab进行工作空间分析,[转载]MATLAB的工作空间输出simulink仿真结果(摘改)...
  3. 组件化开发之03 一喂 App 架构演变
  4. 黑客学习-SQL注入(字符型):Hackbar获取网站账号和密码
  5. 四年上册级计算机教学计划,关于小学数学四年级上册的教学计划
  6. 也来谈谈我家的理财故事(转)
  7. 蓝牙耳机哪款音质好?2022蓝牙耳机音质排行榜
  8. 数值范围_产科超声筛查各指标测量及标准范围数值查询表
  9. emcc编译与部分重要参数选取
  10. 高性价比智能86盒面板方案