Free Tutorial Service Computer and Android Studio

Free Tutorial Photo Editor | Android Studio | Java

by Tutorial , at 5/28/2019 09:05:00 AM

Image Editor | Android Studio | Java

Android allows us to apply many kinds of effects on images. In this tutorial, we will apply some effects to an Image in the ImageView. We will apply the following effects to the image.
  1. Gray
  2. Bright
  3. Dark
  4. Red/Gama
  5. Green
  6. Blue

Step 1: Create a new project OR Open your existing project

Step 2: Place image in the drawable folder

Place any image (to apply the effects to it) in the drawable folder.

Step 3: Code

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="10dp"
tools:context=".MainActivity">

<TextView
android:id="@+id/label1Tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Image Effects"
android:textColor="#000"
android:textSize="30sp" />

<TextView
android:id="@+id/label2Tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/label1Tv"
android:layout_centerHorizontal="true"
android:text="wong-ngaur.blogspot.com"
android:textColor="@color/colorPrimaryDark"
android:textSize="30sp" />

<ImageView
android:id="@+id/bannerIv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:src="@drawable/sample_image" />

<Button
android:id="@+id/resetBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/brightBtn"
android:layout_centerHorizontal="true"
android:onClick="resetClicked"
android:text="Reset" />

<Button
android:id="@+id/grayBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/redBtn"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:onClick="grayClicked"
android:text="Gray" />

<Button
android:id="@+id/brightBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/greenBtn"
android:layout_centerHorizontal="true"
android:onClick="brightClicked"
android:text="Bright" />

<Button
android:id="@+id/darkBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/blueBtn"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:onClick="darkClicked"
android:text="Dark" />

<Button
android:id="@+id/redBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:onClick="gamaClicked"
android:text="Red" />

<Button
android:id="@+id/greenBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/brightBtn"
android:layout_alignLeft="@+id/brightBtn"
android:layout_alignTop="@+id/redBtn"
android:layout_alignParentBottom="true"
android:onClick="greenClicked"
android:text="Green" />

<Button
android:id="@+id/blueBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:onClick="blueClicked"
android:text="Blue" />

</RelativeLayout>
MainActivity.java
package com.blogspot.wongngaur.imageeffects;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;


public class MainActivity extends AppCompatActivity {

private ImageView bannerIv;

private Bitmap bitmapOriginal, bitmapConverted;

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

bannerIv = findViewById(R.id.bannerIv);

BitmapDrawable bitmapDrawable = (BitmapDrawable) bannerIv.getDrawable();
bitmapOriginal = bitmapDrawable.getBitmap();
}

public void resetClicked(View view) {
bannerIv.setImageBitmap(bitmapOriginal);
}

public void grayClicked(View view) {
bitmapConverted = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), bitmapOriginal.getConfig());
double red = 0.33;
double green = 0.59;
double blue = 0.11;

for (int i = 0; i < bitmapOriginal.getWidth(); i++) {
for (int j = 0; j < bitmapOriginal.getHeight(); j++) {
int p = bitmapOriginal.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);

r = (int) red * r;
g = (int) green * g;
b = (int) blue * b;
bitmapConverted.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
bannerIv.setImageBitmap(bitmapConverted);
}

public void brightClicked(View view) {
bitmapConverted = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), bitmapOriginal.getConfig());

for (int i = 0; i < bitmapOriginal.getWidth(); i++) {
for (int j = 0; j < bitmapOriginal.getHeight(); j++) {
int p = bitmapOriginal.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);
int alpha = Color.alpha(p);

r = 100 + r;
g = 100 + g;
b = 100 + b;
alpha = 100 + alpha;
bitmapConverted.setPixel(i, j, Color.argb(alpha, r, g, b));
}
}
bannerIv.setImageBitmap(bitmapConverted);
}

public void darkClicked(View view) {
bitmapConverted = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), bitmapOriginal.getConfig());

for (int i = 0; i < bitmapOriginal.getWidth(); i++) {
for (int j = 0; j < bitmapOriginal.getHeight(); j++) {
int p = bitmapOriginal.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);
int alpha = Color.alpha(p);

r = r - 50;
g = g - 50;
b = b - 50;
alpha = alpha - 50;
bitmapConverted.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
bannerIv.setImageBitmap(bitmapConverted);
}

public void gamaClicked(View view) {
bitmapConverted = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), bitmapOriginal.getConfig());

for (int i = 0; i < bitmapOriginal.getWidth(); i++) {
for (int j = 0; j < bitmapOriginal.getHeight(); j++) {
int p = bitmapOriginal.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);
int alpha = Color.alpha(p);

r = r + 150;
g = 0;
b = 0;
alpha = 0;
bitmapConverted.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
bannerIv.setImageBitmap(bitmapConverted);
}

public void greenClicked(View view) {
bitmapConverted = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), bitmapOriginal.getConfig());

for (int i = 0; i < bitmapOriginal.getWidth(); i++) {
for (int j = 0; j < bitmapOriginal.getHeight(); j++) {
int p = bitmapOriginal.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);
int alpha = Color.alpha(p);

r = 0;
g = g + 150;
b = 0;
alpha = 0;
bitmapConverted.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
bannerIv.setImageBitmap(bitmapConverted);
}

public void blueClicked(View view) {
bitmapConverted = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), bitmapOriginal.getConfig());

for (int i = 0; i < bitmapOriginal.getWidth(); i++) {
for (int j = 0; j < bitmapOriginal.getHeight(); j++) {
int p = bitmapOriginal.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);
int alpha = Color.alpha(p);

r = 0;
g = 0;
b = b + 150;
alpha = 0;
bitmapConverted.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
bannerIv.setImageBitmap(bitmapConverted);
}

}

Step 4: Run Project


Free Tutorial Photo Editor | Android Studio | Java
Free Tutorial Photo Editor | Android Studio | Java - written by Tutorial , published at 5/28/2019 09:05:00 AM, categorized as android studio , Effects , Image Editor , java , Photo Editor , tutorial
Comment disabled
Theme designed by ngaur.com - Published by ngaur.com
Powered by Blogger