Android改变图像的饱和度 亮度和对比度
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
转自:http://blog.csdn.net/sxwyf248/article/details/7019731
运行结果:
使用到了ColorMatrix。
Java代码:
- package com.figo.imgedit;
- import java.io.FileNotFoundException;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.Bitmap.Config;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.ColorMatrix;
- import android.graphics.ColorMatrixColorFilter;
- import android.graphics.Paint;
- import android.net.Uri;
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.ImageView;
- import android.widget.SeekBar;
- import android.widget.SeekBar.OnSeekBarChangeListener;
- public class ImgeditActivity extends Activity {
- /** Called when the activity is first created. */
- private Bitmap srcBitmap, dstBitmap;
- private String pathName = "/sdcard/testimg.jpg";
- private ImageView dstimage = null;
- private SeekBar SaturationseekBar = null;
- private SeekBar BrightnessseekBar = null;
- private SeekBar ContrastseekBar = null;
- private int imgHeight, imgWidth;
- public static final int PICTURE = 0;
- public static final int MAX_WIDTH = 240;
- public static final int MAX_HEIGHT = 240;
- private Uri imageUri;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- dstimage = (ImageView) findViewById(R.id.dstImageView);
- SaturationseekBar = (SeekBar) findViewById(R.id.Saturationseekbar);
- BrightnessseekBar = (SeekBar) findViewById(R.id.Brightnessseekbar);
- ContrastseekBar = (SeekBar) findViewById(R.id.Contrastseekbar);
- srcBitmap = BitmapFactory.decodeFile(pathName);
- dstimage.setImageBitmap(srcBitmap);
- imgHeight = srcBitmap.getHeight();
- imgWidth = srcBitmap.getWidth();
- dstBitmap = Bitmap.createBitmap(imgWidth, imgHeight, Config.ARGB_8888);
- SaturationseekBar
- .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
- // 当拖动条的滑块位置发生改变时触发该方法
- public void onProgressChanged(SeekBar arg0, int progress,
- boolean fromUser) {
- // 创建一个相同尺寸的可变的位图区,用于绘制调色后的图片
- Bitmap bmp = Bitmap.createBitmap(imgWidth, imgHeight,
- Config.ARGB_8888);
- ColorMatrix cMatrix = new ColorMatrix();
- // 设置饱和度
- cMatrix.setSaturation((float) (progress / 100.0));
- Paint paint = new Paint();
- paint.setColorFilter(new ColorMatrixColorFilter(cMatrix));
- Canvas canvas = new Canvas(bmp);
- // 在Canvas上绘制一个已经存在的Bitmap。这样,dstBitmap就和srcBitmap一摸一样了
- canvas.drawBitmap(srcBitmap, 0, 0, paint);
- dstimage.setImageBitmap(bmp);
- }
- public void onStartTrackingTouch(SeekBar bar) {
- }
- public void onStopTrackingTouch(SeekBar bar) {
- }
- });
- BrightnessseekBar
- .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
- // 当拖动条的滑块位置发生改变时触发该方法
- public void onProgressChanged(SeekBar arg0, int progress,
- boolean fromUser) {
- Bitmap bmp = Bitmap.createBitmap(imgWidth, imgHeight,
- Config.ARGB_8888);
- int brightness = progress - 127;
- ColorMatrix cMatrix = new ColorMatrix();
- cMatrix.set(new float[] { 1, 0, 0, 0, brightness, 0, 1,
- 0, 0, brightness,// 改变亮度
- 0, 0, 1, 0, brightness, 0, 0, 0, 1, 0 });
- Paint paint = new Paint();
- paint.setColorFilter(new ColorMatrixColorFilter(cMatrix));
- Canvas canvas = new Canvas(bmp);
- // 在Canvas上绘制一个已经存在的Bitmap。这样,dstBitmap就和srcBitmap一摸一样了
- canvas.drawBitmap(srcBitmap, 0, 0, paint);
- dstimage.setImageBitmap(bmp);
- }
- public void onStartTrackingTouch(SeekBar bar) {
- }
- public void onStopTrackingTouch(SeekBar bar) {
- }
- });
- ContrastseekBar
- .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
- // 当拖动条的滑块位置发生改变时触发该方法
- public void onProgressChanged(SeekBar arg0, int progress,
- boolean fromUser) {
- Bitmap bmp = Bitmap.createBitmap(imgWidth, imgHeight,
- Config.ARGB_8888);
- // int brightness = progress - 127;
- float contrast = (float) ((progress +
Android改变图像的饱和度 亮度和对比度相关推荐
- Android学习笔记之-:对Android图像色调饱和度亮度处理
首先也简单介绍下图像的RGBA模型,R指红色(Red),G指绿色(Green),B指蓝色(Blue)及A指透明度(Alpha),由这四种元素搭配组合成了各种各样的颜色. 处理工具类及方法: publi ...
- 通过RGB或YUV改变图像的色度和饱和度
通过RGB或YUV改变图像的色度和饱和度 自己曾经尝试过BGR先转成HSV,再改变S分量,但是效果非常差,这里是我是在别人论文上查到的,给大家参考一下 1. 通过YUV改变图像的饱和度,这里的r的范围 ...
- Android 字体 hsv 对比度,Android图像锐化,饱和度,色调,亮度和对比度
是的,android有一些操作颜色的工具,有些比其他更容易.做你特别要求所有图像的一般空间的唯一方法是修改单个像素.还有其他快速而肮脏的技巧要快得多,但精度要低得多(ColorFilter). 色相变 ...
- android 亮度 对比度,Android图像锐化,饱和度,色调,亮度和对比度
是的,android有一些操作颜色的工具,比别人更容易.做特别要求所有图像的一般空间的唯一方法是修改单个像素.还有其他快速和肮脏的技巧,速度要快得多,但不够精确(ColorFilter). 色相换: ...
- 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
随着深度学习的进步和硬件的更新迭代,计算机视觉技术也得到了更大的提升,在计算机视觉领域,经常要训练深度学习的模型,而训练模型的最终目的是为了更好的应用到实际当中去,那就要解决一个精度问题和泛化能力,对 ...
- Android OpenCV之算数操作与调整图像的亮度和对比度
Android OpenCV之算数操作与调整图像的亮度和对比度 OpenCV算数API介绍 Mat 对象之间的加.减.乘.除最常用的方法如下: add(Mat src1, Mat src2, Mat ...
- 独家|OpenCV 1.6 改变图像的对比度和亮度!
翻译:陈之炎 校对:吴金迪本文约2500字,建议阅读5分钟本文为大家介绍了OpenCV改变图像的对比度和亮度. 目标 在本教程中, 你将学习到以下内容: 访问像素值; 用零初始化矩阵; 学习CV :: ...
- OpenCV学习:改变图像的对比度和亮度
本实例演示简单地改变图像的对比度和亮度,使用了如下线性变换来实现像素值的遍历操作: The parameters α > 0 and β often called the gain and bi ...
- OpenCV改变图像的对比度和亮度
OpenCV改变图像的对比度和亮度 改变图像的对比度和亮度 目标 理论 图像处理 像素变换 亮度和对比度调整 代码 解释 结果 改变图像的对比度和亮度 目标 在本教程中,您将学习如何: 访问像素值 用 ...
最新文章
- python 类的魔术方法_python中类的魔术方法
- [书目]软件制胜之道:执行的策略
- Android EditText属性用法
- Golang——多种运算符及优先级
- 博弈论(一):Nim游戏
- 印刷(烫金)缺陷在线检测系统
- 组态王怎么做进度条_3分钟学会超实用||进度条amp;游戏血条的制作方法!
- tcp压测工具_使用BeetleX的TcpBenchmark工具进行百万设备模拟测试
- 数据可视化专属配色方案
- android tv webview,Android TV中WebView的按键响应问题
- 虫虫asp建站源码_新云CMS仿完美下载站整站源码
- 我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知
- 位运算符(,|,~,^,同或,>>,<<)
- 基于Eclipse+Java+Swing+Mysql图书信息管理系统
- bpmn-js汉化(将元素提示语进行汉化)
- 15幅非常有创意的影子摄影作品欣赏
- 游戏技巧-《文明6》的C盘爆满问题
- 【小程序云开发】本地调试和云端测试的结果不一致,返回值result为null
- HTML怎么跟随页面缩放,如何让网页跟着 浏览器全比例缩小(示例代码)
- Packettracer--计算机网络实验
热门文章
- ChatGPT初学者写作教程
- iOS 中集合如何弱引用对象
- 找不到中文语音预训练模型?中文版Wav2vec 2.0和HuBERT来了
- fre740变频器参数_三菱FR-E740变频器简介.doc
- java继承输出先后顺序_java继承时候类的运行顺序问题
- OpenGL解析法绘制旋转曲面--青花瓷
- python数据分析之云雨图(箱型图+分布图+散点图)
- React Native调用Android原生代码实现车牌识别功能【附效果图附源码】
- Google Android Sensor -- 004 -- 耗电量
- 装载问题 (回溯法)