Adjust saturation of Bitmap with ColorMatrix

Adjust saturation of Bitmap with ColorMatrix - Hello Friend GENERAL INFO FOR ANDROID DEVELOPMENT, In the article you read this time with the title Adjust saturation of Bitmap with ColorMatrix, We have prepared this article for you to read and retrieve information there in. Hopefully the contents of postings Artikel Android code sample: bitmap and image, We write this you can understand. Alright, good read.

The Title : Adjust saturation of Bitmap with ColorMatrix
link : Adjust saturation of Bitmap with ColorMatrix

Read also


Adjust saturation of Bitmap with ColorMatrix

android.graphics.ColorMatrix is a 5x4 matrix for transforming the color+alpha components of a Bitmap. The setSaturation(float sat) method of ColorMatrix set the matrix to affect the saturation of colors. A value of 0 maps the color to gray-scale. 1 is identity.

This example demonstrate how to generate a bitmap with adjusted saturation using ColorMatrix.setSaturation().

Adjust saturation of Bitmap with ColorMatrix

package com.example.androiddrawbitmap;

import java.io.FileNotFoundException;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
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.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

Button btnLoadImage;
TextView textSource;
ImageView imageResult;
SeekBar satBar;
TextView satText;

final int RQS_IMAGE1 = 1;

Uri source;
Bitmap bitmapMaster;
Canvas canvasMaster;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btnLoadImage = (Button) findViewById(R.id.loadimage);
textSource = (TextView) findViewById(R.id.sourceuri);
imageResult = (ImageView) findViewById(R.id.result);

btnLoadImage.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RQS_IMAGE1);
}
});

satText = (TextView) findViewById(R.id.textsat);
satBar = (SeekBar) findViewById(R.id.satbar);
satBar.setOnSeekBarChangeListener(seekBarChangeListener);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {
switch (requestCode) {
case RQS_IMAGE1:
source = data.getData();

try {
bitmapMaster = BitmapFactory
.decodeStream(getContentResolver().openInputStream(
source));

satBar.setProgress(256);

loadBitmapSat();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

break;
}
}
}

OnSeekBarChangeListener seekBarChangeListener = new OnSeekBarChangeListener() {

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub

}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
loadBitmapSat();
}
};

private void loadBitmapSat() {
if (bitmapMaster != null) {

int progressSat = satBar.getProgress();

//Saturation, 0=gray-scale. 1=identity
float sat = (float) progressSat / 256;
satText.setText("Saturation: " + String.valueOf(sat));
imageResult.setImageBitmap(updateSat(bitmapMaster, sat));
}
}

private Bitmap updateSat(Bitmap src, float settingSat) {

int w = src.getWidth();
int h = src.getHeight();

Bitmap bitmapResult =
Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvasResult = new Canvas(bitmapResult);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(settingSat);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(filter);
canvasResult.drawBitmap(src, 0, 0, paint);

return bitmapResult;
}
}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<Button
android:id="@+id/loadimage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Load Image 1" />

<TextView
android:id="@+id/sourceuri"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<ImageView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/background_dark"
android:scaleType="centerInside" />

<TextView
android:id="@+id/textsat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Saturation" />
<SeekBar
android:id="@+id/satbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="512"
android:progress="256"/>

</LinearLayout>


download filesDownload the files.

download filesDownload and try the APK.



more: Something about processing images in Android



Thus Article Adjust saturation of Bitmap with ColorMatrix

The End Article Adjust saturation of Bitmap with ColorMatrix This time, hopefully can give benefits to all of you. well, see you in posting other articles.

You are now reading the article Adjust saturation of Bitmap with ColorMatrix with the link address http://xorislogo.blogspot.com/2013/09/adjust-saturation-of-bitmap-with.html

0 Response to "Adjust saturation of Bitmap with ColorMatrix"

Post a Comment