生活随笔
收集整理的這篇文章主要介紹了
Android改变图像的饱和度 亮度和对比度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分享一下我老師大神的人工智能教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
轉自:http://blog.csdn.net/sxwyf248/article/details/7019731
運行結果:
使用到了ColorMatrix。
Java代碼:
[java]?view?plaincopy
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?{????????????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.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.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);????????????????????????????????????????????????????float?contrast?=?(float)?((progress?+?
總結
以上是生活随笔為你收集整理的Android改变图像的饱和度 亮度和对比度的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。