Android Open Source - android-imgpro-lib Filter






From Project

Back to project page android-imgpro-lib.

License

The source code is released under:

MIT License

If you think the Android project android-imgpro-lib listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.akhyar.android.imgpro;
//from  w ww  . j  a  v a2s .c o  m
import java.util.ArrayList;

import android.graphics.Bitmap;
import android.util.Log;

public abstract class Filter {
  protected ArrayList<Action> actions = new ArrayList<Action>();
  private Bitmap bitmap = null;
  private FilterListener filterListener = null;
  protected boolean isDefault = false;

  public abstract String getName();

  /**
   * Will be fired after setBitmap()
   * 
   * @param bitmap
   */
  public abstract void onBitmapSet(Bitmap bitmap);

  public Filter() {
  }

  public Filter(Bitmap bitmap) {
    this.setBitmap(bitmap);
  }

  public Filter(Bitmap bitmap, boolean isDefault) {
    this(bitmap);
    this.isDefault = isDefault;
  }

  protected void clearActions() {
    actions.clear();
  }

  protected void addAction(Action action) {
    actions.add(action);
  }

  protected void removeAction(int index) {
    actions.remove(index);
  }

  protected void removeAction(Action action) {
    actions.remove(action);
  }

  public final Bitmap apply() {

    if (getBitmap().isRecycled()) {
      Log.e("Filter", "Source bitmap is prematurely recycled");
      return null;
    }

    Bitmap bmp = getBitmap().copy(Bitmap.Config.ARGB_8888, true);

    if (!isDefault) {
      for (Action action : actions) {
        action.adjustBitmap(bmp);
      }
    }

    return bmp;
  }

  public final void applyInBackground() {
    FilterTask task = new FilterTask();
    task.execute(this);
  }

  public final void applyInBackground(FilterListener l) {
    setFilterListener(l);
    applyInBackground();
  }

  public FilterListener getFilterListener() {
    return filterListener;
  }

  public void setFilterListener(FilterListener filterListener) {
    this.filterListener = filterListener;
  }

  public Bitmap getBitmap() {
    return bitmap;
  }

  public void setBitmap(Bitmap bitmap) {
    this.bitmap = bitmap;
    onBitmapSet(bitmap);
  }
}




Java Source Code List

net.akhyar.android.imgpro.Action.java
net.akhyar.android.imgpro.Channel.java
net.akhyar.android.imgpro.FilterListener.java
net.akhyar.android.imgpro.FilterTask.java
net.akhyar.android.imgpro.Filter.java
net.akhyar.android.imgpro.ImgPro.java
net.akhyar.android.imgpro.actions.Blend.java
net.akhyar.android.imgpro.actions.Blur.java
net.akhyar.android.imgpro.actions.Brightness.java
net.akhyar.android.imgpro.actions.ChannelMix.java
net.akhyar.android.imgpro.actions.Colorize.java
net.akhyar.android.imgpro.actions.Contrast.java
net.akhyar.android.imgpro.actions.Desaturate.java
net.akhyar.android.imgpro.actions.Invert.java
net.akhyar.android.imgpro.filters.Default.java
net.akhyar.android.imgpro.filters.Vintage.java
net.akhyar.android.imgpro.filters.XProcess.java
net.akhyar.android.perf.BitmapTask.java
net.akhyar.android.perf.SetBitmap.java
net.akhyar.android.perf.SetImageViewBitmapTask.java
net.akhyar.android.perf.Worker.java