ImageFilter.java revision 4e6c07b71b269ee3fe7f6fa455bc540238df9ded
1/* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.gallery3d.filtershow.filters; 18 19import android.graphics.Bitmap; 20 21import com.android.gallery3d.R; 22import com.android.gallery3d.filtershow.editors.BasicEditor; 23import com.android.gallery3d.filtershow.presets.ImagePreset; 24 25public abstract class ImageFilter implements Cloneable { 26 27 private ImagePreset mImagePreset; 28 29 protected String mName = "Original"; 30 private final String LOGTAG = "ImageFilter"; 31 32 public void setName(String name) { 33 mName = name; 34 } 35 36 public String getName() { 37 return mName; 38 } 39 40 public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { 41 // do nothing here, subclasses will implement filtering here 42 return bitmap; 43 } 44 45 /** 46 * Called on small bitmaps to create button icons for each filter. 47 * Override this to provide filter-specific button icons. 48 */ 49 public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) { 50 return apply(bitmap, scaleFactor, quality); 51 } 52 53 public ImagePreset getImagePreset() { 54 return mImagePreset; 55 } 56 57 public void setImagePreset(ImagePreset imagePreset) { 58 mImagePreset = imagePreset; 59 } 60 61 public abstract void useRepresentation(FilterRepresentation representation); 62 63 native protected void nativeApplyGradientFilter(Bitmap bitmap, int w, int h, 64 int[] redGradient, int[] greenGradient, int[] blueGradient); 65 66 public FilterRepresentation getDefaultRepresentation() { 67 return null; 68 } 69 70} 71