ImageFilter.java revision 3038d014b7ade998d1820c997242b9d9d8bc7ccf
1 2package com.android.gallery3d.filtershow.filters; 3 4import android.graphics.Bitmap; 5 6public class ImageFilter implements Cloneable { 7 8 protected int mMaxParameter = 100; 9 protected int mMinParameter = -100; 10 protected int mDefaultParameter = 0; 11 protected int mParameter = 0; 12 protected String mName = "Original"; 13 private final String LOGTAG = "ImageFilter"; 14 public static final byte TYPE_BORDER =1; 15 public static final byte TYPE_FX = 2; 16 public static final byte TYPE_WBALANCE = 3; 17 public static final byte TYPE_VIGNETTE = 4; 18 public static final byte TYPE_NORMAL = 5; 19 private byte filterType = TYPE_NORMAL; 20 21 public byte getFilterType(){ 22 return filterType; 23 } 24 25 protected void setFilterType(byte type){ 26 filterType = type; 27 } 28 29 @Override 30 public ImageFilter clone() throws CloneNotSupportedException { 31 ImageFilter filter = (ImageFilter) super.clone(); 32 filter.setName(getName()); 33 filter.setParameter(getParameter()); 34 filter.setFilterType(filterType); 35 filter.mMaxParameter = mMaxParameter; 36 filter.mMinParameter = mMinParameter; 37 filter.mDefaultParameter = mDefaultParameter; 38 return filter; 39 } 40 41 public void setName(String name) { 42 mName = name; 43 } 44 45 public String getName() { 46 return mName; 47 } 48 49 public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { 50 // do nothing here, subclasses will implement filtering here 51 return bitmap; 52 } 53 54 public int getParameter() { 55 return mParameter; 56 } 57 58 public void setParameter(int value) { 59 mParameter = value; 60 } 61 62 /** 63 * The maximum allowed value (inclusive) 64 * @return maximum value allowed as input to this filter 65 */ 66 public int getMaxParameter(){ 67 return mMaxParameter; 68 } 69 70 /** 71 * The minimum allowed value (inclusive) 72 * @return minimum value allowed as input to this filter 73 */ 74 public int getMinParameter(){ 75 return mMinParameter; 76 } 77 78 /** 79 * Returns the default value returned by this filter. 80 * @return default value 81 */ 82 public int getDefaultParameter(){ 83 return mDefaultParameter; 84 } 85 86 public boolean same(ImageFilter filter) { 87 if (!filter.getName().equalsIgnoreCase(getName())) { 88 return false; 89 } 90 return true; 91 } 92 93 native protected void nativeApplyGradientFilter(Bitmap bitmap, int w, int h, 94 int[] redGradient, int[] greenGradient, int[] blueGradient); 95 96} 97