معکوس کردن رنگ ها(Invert Image) + سورس

به نام خدا،در این آموزش می خواهیم وارد جلسه سوم پردازش تصویر در برنامه نویسی اندروید بشیم.و به معکوس کردن رنگ ها در تصویر بپردازیم.برای شروع کار یک پروژه جدید ایجاد می کنیم به نام InvertImage،بر روی لایه برنامه از یک ImageView  برای نمایش تصویر استفاده می کنیم.کار زیاد خاصی قرار در لایه انجام بدیم به همین دلیل مستقیم میریم سراغ کلاس جاوا و نوشتن کدهای جاوای برنامه.

 

  

 

در داخل کلاس MainActivity.java ابتدا ImageView رو تعریف می کنیم  و سپس کلاس Bitmap رو که در واقع وظیفه پردازش تصویر در برنامه  رو بر عهده داره با استفاده از کد  setImageBitmap به ایمیج ویو اضافه میکنم.در مرحله دوم  برای بیت مپ یک مقدار طول و عرض در نظر میگیرم. سپس اطلاعات مربوط به رنگ ها و اندازه تصویر .در ادامه شروع میکنم به اسکن هر پیکسل  و در آخر هم معکوس کردن پیکسل های اسکن شده و ایجاد تصویر خروجی.(کدهای کاملا کلاس MainActivity).

 /*
* Appinapps.com
* آموزش برنامه نویسی اندروید
* آموزش برنامه نویسی به زبان ساده
*/
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.view.Menu;
import android.widget.ImageView;

public class MainActivity extends Activity {

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

//معرفی ایمیج ویو
imViewAndroid = (ImageView) findViewById(R.id.imViewAndroid);
//افزودن کلاس bitmap و تصویر مد نظر
imViewAndroid.setImageBitmap(invertImage(BitmapFactory.decodeResource(getResources(),  R.drawable.sdw)));
}
//تعریف کلاس Bitmap
public Bitmap invertImage(Bitmap src) {
// ایجاد طول و عرض برای bitmap
Bitmap bmOut = Bitmap.createBitmap(src.getWidth(), src.getHeight(),  src.getConfig());
// اطلاعات مربوط به رنگ
int A, R, G, B;
int pixelColor;
// اندازه تصویر
int height = src.getHeight();
int width = src.getWidth();

// اسکن تصویر از طریق هر پیکسل
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
// دیافت یک پیکسل
pixelColor = src.getPixel(x, y);
A = Color.alpha(pixelColor);
// معکوس کردن بایت ها بر اساس R/G/B
R = 255 - Color.red(pixelColor);
G = 255 - Color.green(pixelColor);
B = 255 - Color.blue(pixelColor);
//افزودن تغییرات انجام شده به تصویر خروجی
bmOut.setPixel(x, y, Color.argb(A, R, G, B));
}
}

// بازگردانی بیت مپ نهایی
return bmOut;
}

سور کامل این آموزش در فایل ضمیمه قرار گرفت.موفق باشید...


فایلهای ضمیمه
توجه! برای مشاهده فایلهای ضمیمه با ید وارد سایت شوید

نظرات شما نظر جدید
سایر مقالات این دسته