summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java34
1 files changed, 21 insertions, 13 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java
index f03baca39..fd098e699 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterKMeans.java
@@ -20,17 +20,13 @@ import android.graphics.Bitmap;
import android.text.format.Time;
import com.android.gallery3d.R;
+import com.android.gallery3d.ingest.ui.MtpThumbnailTileView;
-public class ImageFilterKMeans extends ImageFilter {
+public class ImageFilterKMeans extends SimpleImageFilter {
private int mSeed = 0;
public ImageFilterKMeans() {
mName = "KMeans";
- mMaxParameter = 20;
- mMinParameter = 2;
- mPreviewParameter = 4;
- mDefaultParameter = 4;
- mParameter = 4;
// set random seed for session
Time t = new Time();
@@ -38,6 +34,18 @@ public class ImageFilterKMeans extends ImageFilter {
mSeed = (int) t.toMillis(false);
}
+ public FilterRepresentation getDefaultRepresentation() {
+ FilterBasicRepresentation representation = (FilterBasicRepresentation) super.getDefaultRepresentation();
+ representation.setName("KMeans");
+ representation.setFilterClass(ImageFilterKMeans.class);
+ representation.setMaximum(20);
+ representation.setMinimum(2);
+ representation.setValue(4);
+ representation.setDefaultValue(4);
+ representation.setPreviewValue(4);
+ return representation;
+ }
+
native protected void nativeApplyFilter(Bitmap bitmap, int width, int height,
Bitmap large_ds_bm, int lwidth, int lheight, Bitmap small_ds_bm,
int swidth, int sheight, int p, int seed);
@@ -53,12 +61,10 @@ public class ImageFilterKMeans extends ImageFilter {
}
@Override
- public boolean isNil() {
- return false;
- }
-
- @Override
public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) {
+ if (getParameters() == null) {
+ return bitmap;
+ }
int w = bitmap.getWidth();
int h = bitmap.getHeight();
@@ -87,8 +93,10 @@ public class ImageFilterKMeans extends ImageFilter {
small_bm_ds = Bitmap.createScaledBitmap(large_bm_ds, sw, sh, true);
}
- int p = Math.max(mParameter, mMinParameter) % (mMaxParameter + 1);
- nativeApplyFilter(bitmap, w, h, large_bm_ds, lw, lh, small_bm_ds, sw, sh, p, mSeed);
+ if (getParameters() != null) {
+ int p = Math.max(getParameters().getValue(), getParameters().getMinimum()) % (getParameters().getMaximum() + 1);
+ nativeApplyFilter(bitmap, w, h, large_bm_ds, lw, lh, small_bm_ds, sw, sh, p, mSeed);
+ }
return bitmap;
}
}