ImageFilter.java revision 2576a29cccf1d96edeef071914e8b775c230e8e8
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 public static final byte TYPE_TINYPLANET = 6; 20 private byte filterType = TYPE_NORMAL; 21 22 public byte getFilterType(){ 23 return filterType; 24 } 25 26 protected void setFilterType(byte type){ 27 filterType = type; 28 } 29 30 @Override 31 public ImageFilter clone() throws CloneNotSupportedException { 32 ImageFilter filter = (ImageFilter) super.clone(); 33 filter.setName(getName()); 34 filter.setParameter(getParameter()); 35 filter.setFilterType(filterType); 36 filter.mMaxParameter = mMaxParameter; 37 filter.mMinParameter = mMinParameter; 38 filter.mDefaultParameter = mDefaultParameter; 39 return filter; 40 } 41 42 public boolean isNil() { 43 if (mParameter == mDefaultParameter) { 44 return true; 45 } 46 return false; 47 } 48 49 public void setName(String name) { 50 mName = name; 51 } 52 53 public String getName() { 54 return mName; 55 } 56 57 public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { 58 // do nothing here, subclasses will implement filtering here 59 return bitmap; 60 } 61 62 public int getParameter() { 63 return mParameter; 64 } 65 66 public void setParameter(int value) { 67 mParameter = value; 68 } 69 70 /** 71 * The maximum allowed value (inclusive) 72 * @return maximum value allowed as input to this filter 73 */ 74 public int getMaxParameter(){ 75 return mMaxParameter; 76 } 77 78 /** 79 * The minimum allowed value (inclusive) 80 * @return minimum value allowed as input to this filter 81 */ 82 public int getMinParameter(){ 83 return mMinParameter; 84 } 85 86 /** 87 * Returns the default value returned by this filter. 88 * @return default value 89 */ 90 public int getDefaultParameter(){ 91 return mDefaultParameter; 92 } 93 94 public boolean same(ImageFilter filter) { 95 if (!filter.getName().equalsIgnoreCase(getName())) { 96 return false; 97 } 98 return true; 99 } 100 101 native protected void nativeApplyGradientFilter(Bitmap bitmap, int w, int h, 102 int[] redGradient, int[] greenGradient, int[] blueGradient); 103 104} 105